Ajax发送数据,但什么都不返回

时间:2016-05-08 08:59:55

标签: php jquery ajax

我有这个HTML

<div class="Likes" data-i=<?php echo $row[8];?>>
    <img src="../img/like.png">
    <p class="L_c"><?php echo $row[4];?></p>
</div>

这个jquery / ajax

$(".Likes").click(function() {
    var i = $(this).attr("data-i");
    $.ajax({
        type: "GET",
        url: '../connect.php',
        data: "I=" + i,
        success: function(data) {
            $(this).children(".L_c").html(data);
        }
   });
});

Connect.php

if (isset($_GET["I"]) && !isset($_GET["C"])) {

    $RandS=$_GET["I"];

    $query3=$con->query("SELECT id,likes FROM uploads WHERE Rand='$RandS'");
    $row=$query3->fetch_row();
    $IdU=$row[0];
    $Likes=$row[1];

    $Sel2=$con->query("SELECT id FROM likes WHERE User_id='$NameId' AND Post_id='$IdU'");
    $num_rows=$Sel2->num_rows;
    if ($num_rows>0) {
        echo $Likes;
    }else{
            $query=$con->query("INSERT INTO likes (Post_id,User_id,`DATE`) VALUES('$IdU','$NameId',NOW())");
            $query=$con->query("UPDATE uploads SET Likes=$Likes+1 WHERE Rand='$RandS'");
            echo $Likes+1;
    }
}

但它不会返回任何内容,直到我刷新页面

1 个答案:

答案 0 :(得分:2)

this方法回调中的$.ajax关键字不是元素,而是ajax调用本身。

您必须设置上下文,或者只存储外部this - 值

$(".Likes").on('click', function() {
    var me = $(this);
    var i  = me.attr("data-i");

    $.ajax({
        type: "GET",
        url: '../connect.php',
        data: "I=" + i,
        success: function(data) {
            me.find(".L_c").html(data);
        }
   });
});