Php jquery-ajax-逐个更新列的问题
当我点击一个图像时,我想根据id更新每一列,而不刷新所有页面。当我在图像上单击每个时,我的代码只更新最后一列ID。Php jquery-ajax-逐个更新列的问题,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,当我点击一个图像时,我想根据id更新每一列,而不刷新所有页面。当我在图像上单击每个时,我的代码只更新最后一列ID。 index.php: $rzp=mysqli_query($conn,"SELECT * FROM `tbl_users_posts` WHERE uid=1"); while($rw=mysqli_fetch_assoc($rzp)){$id=$rw['id']; echo $id;?><img id="up" src="pc3
index.php:
$rzp=mysqli_query($conn,"SELECT * FROM `tbl_users_posts` WHERE uid=1");
while($rw=mysqli_fetch_assoc($rzp)){$id=$rw['id'];
echo $id;?><img id="up" src="pc3/up.png" alt=""><br>
<?php }?>
<script>
$(document).ready(function() {
var id = <?php echo $id;?>;
$(document).on("click","#up",function() {
$.ajax({
method: "POST",
url: "y2.php",
data: {id: id},
async :false
}).done(function(msg2) {
alert(msg2);
});
});
});
</script>
谢谢这里有几件事情马上就错了:
- 您正在HTML中使用
值,这是无效的id
- 您的
JavaScript代码始终具有数据中的最后一个值,并且每次都显式使用该值,而不是HTML元素中的任何值var id=…
类和(2)单击处理程序需要的ID:
<?php
while($rw=mysqli_fetch_assoc($rzp)){
$id=$rw['id'];
echo $id;
?>
<img class="up" src="pc3/up.png" alt="" data-id="<?php echo $id; ?>"><br>
<?php } ?>
(注意:我还删除了async:false
,因为人们永远不应该使用async:false
。如果出于某种原因您认为需要使用它,那么这是一个完全不同的问题,也应该解决。)因为您在while循环中设置了$id,所以它将始终是最后一个id集。最好是找到一种方法将该id附加到您的图像上,可能作为一个数据属性,然后您可以在javascript中获得该属性。此外,id必须是唯一的-您为每个图像提供了相同的id。谢谢,它可以工作。现在,我应该如何删除警报和函数msg2部分?@behzad:只需删除它,就可以删除alert()
。不清楚是什么问题,像这样。完成(函数(){});没有必要删除这个函数?@behzad:现在真的不清楚你在问什么。您可以编写代码来执行您试图执行的任何操作。如果您不想以任何方式响应AJAX响应,则不需要.done()
处理程序。尽管建议至少检查响应是否有错误,但不要假设它按预期工作。它工作正常,谢谢。我想知道该如何移除该部分。我还有一个问题,这是创建like按钮的好方法吗?
<?php
while($rw=mysqli_fetch_assoc($rzp)){
$id=$rw['id'];
echo $id;
?>
<img class="up" src="pc3/up.png" alt="" data-id="<?php echo $id; ?>"><br>
<?php } ?>
$(document).on("click", ".up", function() { // use the class as the selector
var id = $(this).data('id'); // get the data-id value from this specific element
$.ajax({
method: "POST",
url: "y2.php",
data: {id: id}
}).done(function(msg2) {
alert(msg2);
});
});