0

当用户单击“喜欢”(与 facebook like 相同)时,我想更新数据库上的喜欢。我将从数据库中加载各种帖子。对于每个帖子,数据库上都有一个名为 mid(消息 ID)的唯一字段,当用户单击帖子下方的“喜欢”时,我想为该特定消息增加数据库上的喜欢(可以通过 mid)。我想使用 jquery 实现这个功能,因为如果我通过 url 传递中间,它将导航到该页面并加载整个页面,所以我需要通过 AJAX 调用在页面后面完成它。让我展示一个模型,我的数据库检索是如何进行的

$cot = "select * from posts where userid = $usr LIMIT 10";
$ex = mysql_query($cot, $con);
while($cont = mysql_fetch_array($ex))
{
    $date = date_create($cont['date']);
    $mid = $cont['mid'];

    echo "<div id='posts'>";
    echo $cont['message'];
    echo $photo;
    echo "<div class='like'>"; //echo $mid; /* It is to show message id*/ 
    echo "<a href='#'>Like</a></div>";  //When Clicked Like i Want to increment likes on DB
    echo "Likes(" . $cont['Likes'] . ")";
    echo date_format($date, 'd-m-Y H:i:s');
    echo "<hr>";
    echo "</div>";
}

我希望通过 jquery 和 ajax 调用来完成。我只需要 jquery 代码来调用 php 文件 increment.php 并将 mid(message Id) 传递给该页面。

4

2 回答 2

1

也许你需要这样的东西:

    echo "<a href='javascript:void(0);' class='like' data-mid='".$cont['mid']."'>Like</a></div>";  //When Clicked Like i Want to increment likes on DB

现在这是脚本:

    <script type="text/javascript">
    $(function(){
        $(".like").live('click', function(){
           $.ajax({
                url     : 'increment.php',
                data    : {'mid':$(this).data('mid')},
                type    : 'POST',
                success : function(resp){
                    if(resp == '1'){
                        //success message or whatever
                    }
                },
                error   : function(resp){
                    alert("some error occured !");
                }
           }); 
        });
    });
    </script>

在你的 increment.php 上:

    <?php
        $id = $_POST['mid'];
        $sql = "update posts set Likes = Likes+1 where mid = '".$id."'";
        //execute the above and return some thing
        return 1;
    ?>
于 2013-06-14T08:40:33.647 回答
0
$.post('/increment.php', { mid: whatever });

使用您的示例单击处理程序,很容易将其添加到......

 $(document).ready(function() { 
     $("div.pray").click(function() { 
          var mid=$(this).val(); 
          alert(mid);
          $.post('/increment.php', { mid: mid });
     });
 });
于 2013-06-14T04:03:58.357 回答