PHP / Ajax之类的按钮不起作用

php/ajax like button not working

本文关键字:按钮 不起作用 Ajax PHP      更新时间:2023-09-26

大家好,我尝试使用 PHP 和 Ajax 创建像按钮一样,所以编写此代码,但只是在第一个循环中工作

<?php header('Cache-Control: no-cache'); ?>
<script>
    $(document).ready(
        function(){
            $("#like").click(function(){
                $.ajax({
                    type: "POST",
                    url: "<?php  echo ADDRESS ;?>thank.php",
                    data: "like="+$("#like").val(),
                    success: function(result){
                        $("#result").html(result);
                    }        
                });
            });
        }
    );
    </script>
<?php
foreach ($this->value['posts'] as $post){
    echo $post[1] . $post[0] .$post[2] . $post[3]  . '</br>';
    echo '<div id="result"></div>';
}
?>

我认为问题出在我的 #like 重复和jquery不知道哪一个是我们的div

好的,

有人回答了我的问题,但我不知道为什么删除:O

无论他或她以何种方式写作

$(this)

谢谢!

您的代码不起作用,但帮助我解决我的按钮值中的正常问题! 所有按钮都为第一个循环返回值,所以我将 js 代码更改为

<script>
    $(document).ready(
        function(){
            $(".like").click(function(){
                var spdiv = ".result" + $(this).val();
                $.ajax({
                    type: "POST",
                    url: "<?php  echo ADDRESS ;?>thank.php",
                    data: "like="+$(this).val(),
                    success: function(result){
                        $(spdiv).html(result);
                    }        
                });
            });
        }
    );
    </script>

我使用类而不是 id .

ID 是标识符 - 这意味着它们必须是唯一的!另外你的脚本很乱,我猜你没有提到页面上有很多类似的按钮,对吧?

试试这个PHP代码:

foreach ($this->value['posts'] as $index=>$post) {
    echo '<div class="comments">';
    echo $post[1] . $post[0] .$post[2] . $post[3]  . '</br>';
    echo '<button class="like" data-id="<?php echo $index; ?>">LIKE</button>';
    echo '<div class="result"></div>';
    echo '</div>';
}

还有这个JavaScript:

$(document).ready(function(e) {
    $("div.comments").on("click", "button.like", function(e) {
        $.ajax({
            type: "post",
            url: "<?php  echo ADDRESS ;?>thank.php",
            data: {
                like: $(this).attr("data-id")
            },
            success: function(data, textStatus, jqXHR) {
                $(this).siblings(".result").html(data);
            }
    });
});

上面的脚本会将事件侦听器添加到具有类 like 的所有buttons$(this)将引用喜欢按钮,$(this).siblings(".result")将获得结果div,该结果div是喜欢按钮(!)的直接同级,这意味着它们都位于同一个<div class="comments">。我改变了你处理 DOM 元素的方式。我还在您的"喜欢"按钮中添加了一个新的标识符,因此不要忘记更改此data-id以满足您的需求!