javascript - 如何使用帖子 ID 在特定帖子上显示 ajax
问题描述
我在帖子数量上显示 ajax 点赞,但问题是当我单击“点赞按钮”时,点赞(不加载页面)仅显示在第一篇帖子上,当我刷新页面时,所有点赞都显示在它们自己的位置。我想在特定帖子上显示 ajax,而不仅仅是在第一个帖子上。我想我需要在成功函数中传递 ID,但我不知道如何。这是代码。在我的代码中:谣言是一个帖子,喜欢 = 批准,不喜欢 = 不批准。
查看 Ajax + Html 视图的特定部分
function approve_rumor(r_id) {
// alert("dfdfdf");
$.ajax({
type: "post",
url: "<?php echo base_url('Home1/approve_rumor') ?>",
data: {
r_id: r_id
},
cache: false,
success: function(val) {
if (true) {
$('#showapp').html(val);
} else {
// <?php //echo base_url('Login'); ?>;
alert("You need to Login");
}
}
});
}
<span class="like-listing fll approve" onclick="approve_rumor(<?php echo $rumors->rumor_id; ?>)">
<i class="fa fa-thumbs-o-up" aria-hidden="true"></i>
</span>
<span id="showapp" class="fll"><?php echo $rumors->rumor_totalapprovals ?></span>
控制器
function approve_rumor() {
if ($this - > session - > userdata('user_email', 'user_id')) {
$this - > load - > model('rumor_model');
$r_id = $this - > input - > post('r_id');
$data['user_id'] = $this - > session - > userdata('user_id');
$data['rumor_id'] = $r_id;
$this - > rumor_model - > ApproveRumor($data);
//$this->load->view('home1',['approval'=>$approval]);
} else {
return redirect('Login');
}
}
function ApproveRumor($data) {
// echo "<pre>";
// print_r($data);
// exit;
$r_id = $data['rumor_id'];
$query = $this - > db - > insert('approval', $data);
if ($query) {
$a = $this - > db - > query("SELECT * , count(rumor_id) as count_like FROM approval WHERE rumor_id = $r_id ");
echo "<pre>";
print_r($a - > row() - > count_like);
$totalapprovals = $a - > row() - > count_like;
$this - > db - > query("UPDATE rumors SET rumor_totalapprovals = $totalapprovals WHERE rumor_id = $r_id");
// echo $totalapprovals;
// $this->db->where('rumors.rumor_id',$r_id);
// $res = $this->db->update('rumors',$totalapprovals);
} else {
echo "0";
}
}
解决方案
我发现将数据传递给 $.ajax 回调函数的一种很酷的方法是添加一个自定义选项,然后在 $.ajax 回调中将其作为 this.optionProp 引用:
$.ajax({
type: "post",
url: "your/url/here",
data: {
r_id: r_id
},
r_id:r_id, //Your custom option
cache: false,
success: function(val) {
console.log("r_id: " + this.r_id); //The custom option can be referenced with this.optProp
}
});
让我知道这是否有帮助或不是您想要的,我们会修复它
推荐阅读
- reactjs - 忽略父母或孩子的事件处理程序
- python - 如何使用python找到具有成对值的两个列表之间的差异
- javascript - 导出 lambda 函数模式
- python - 如何计算多句摘要的 ROUGE?
- tkinter - 想要移除按钮的边框
- python - 在 Selenium (Python) 的帮助下,如何使用 Instagram 上的链接点赞图片?
- javascript - 为什么我的成帧器运动动画没有在卸载时触发?
- r - 计算数据框中多列的中位数
- c# - AnimationCurve 有什么问题?lerp 持续时间永远不会改变
- javascript - 我应该如何遍历所有提到的用户 | 不和谐.js