我想使用ajax和PHP获取每个帖子的点赞总数。

这是我的ajax.php文件

<?php
include_once "../config.php";

 $user_id=$_POST["user_id"];
 $sale_phone_id=$_POST["sale_phone_id"];

$query2=mysqli_query($conn,"SELECT count(id) as total_likes FROM likes where status='1' AND sale_phones_id='$sale_phone_id'");

$row=mysqli_fetch_assoc($query2);
echo $row["total_likes"];
?>


这是我的JS

<script type="text/javascript">
           $(document).ready(function(){

                      var user_id=1;
                      var sale_phone_id=document.getElementById('demo_demo').getAttribute('data-value');
                      //var message=$("#message").val();

                      $.ajax({
                          type:"post",
                          url:"ajax.php",
                          data:"user_id="+user_id+"&sale_phone_id="+sale_phone_id,
                          success:function(data){

                            $("#thumbs_up").html(data);
                          }

                      });
            });
   </script>


上面提到的代码仅返回我第一篇文章的数据。我想显示所有帖子的喜欢人数。

最佳答案

好吧,您只获得1条记录,因为您只发送了1条sale_phone_id,并且在需要查找特定帖子点赞次数的特定情况下,您的代码很有用。

根据我对您问题的理解,您需要计算每个销售电话上的点赞次数。所以必须加入您的
查询(假设将sales_phone作为您的其他表名);下面给出的查询可以满足您的要求

SELECT *, count(t2.id) as total_likes
FROM sale_phones t1 LEFT JOIN likes t2
ON t2.sale_phones_id=sale_phones_id
WHERE status='1' AND sale_phones_id='$sale_phone_id'


这样,您将获得所有sales_phones及其喜欢的次数。

现在,一旦获得JSON格式的结果(响应ajax调用),jQuery逻辑便是另一个问题。
好吧,可以通过多种方式实现。
最简单的方法是将id属性与前缀一起使用。
在遍历sale_phones并创建帖子的地方,您可以为每个帖子分配一个数据id,例如

<?php foreach($sale_phones as $sp): ?>
    <div id="sp_<?php echo $sp->id; ?>" >
       <?php echo $sp->phone_name;?>
       <span class="likes"></span>
    </div>
<?php endforeach; ?>


并在您的jquery ajax请求函数中

$.ajax({
    type:"post",
    url:"ajax.php",
    success:function(data){
       // assuming that your data is returning in JSON format
       var response = JSON.parse(data);
       $('#sp_'+response.sales_phone_id).children('.likes').text(response.total_likes);
    }
 });


那只是实现您所需的一个粗略草图。让我知道我是否可以进一步提供帮助。

顺便说一句,永远不要从客户端发送user_id,这是非常不安全的。用户可以通过检查元素或其他方式更改ID,并且可以查看任何用户的记录作为响应。解决方案是将user_id保留在会话中,并在PHP代码中需要它时从那里获取它,而不是从客户端发送它。

10-06 04:03
查看更多