我想使用 ajax 和 PHP 获取每个帖子数据的点赞总数
I want to fetch total number of likes against each post data using ajax and PHP
我想使用 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代码中需要时从那里获取它,而不是从客户端发送它。
你只获取一行,你需要获取所有行:
while (false != $row = mysqli_fetch_assoc($query2))
echo $row["total_likes"];
您还需要一些方法来显然分离值......
相关文章:
- Ajax-如何获取数据
- JS验证ajax返回的html中的表单数据
- 正在传递JSONP标头's数据参数到另一个文件中的AJAX请求
- 使用ajax将数据从一个步骤发送到下一个步骤的3步表单
- node.js请求数据事件未在CORS ajax调用中触发
- React ajax数据集成
- 发送和接收数据?Ajax、Jquery和PHP
- 从返回的数据 ajax post 创建一个变量
- Laravel在成功后附加数据ajax
- Python - 从服务器获取数据 (ajax) - 'str' 对象不是可调用的错误
- 阻止执行数据 ajax 属性
- 表单中的文本框数据-AJAX提交时未传递
- 发送数据ajax php
- 加载更多数据ajax PHP onscroll
- Rails 4数据ajax路由问题
- 将数据ajax传递到每个页面的同一个页面
- 发送图像+数据ajax post到ashx处理程序
- 传递购物车数据…Ajax或PHP Post
- 将键值对作为单独的数据Ajax发布
- 使用数据Ajax发送