如何使用 AJAX 更新多个数据?
示例:
TableA
id : 1, 2
name : Jack, John
它只适用于 ID 1,当我尝试编辑 ID 2 的名称时它不起作用。
我试过这段代码但失败了。
HTML/PHP:
...
while($row=mysqli_fetch_array($query)){
echo'
<form class="btn-group">
<input type="text" class="form-control" name="id_user" id="id_user" data-user="'.$row['id'].'" value="'.$row['id'].'">
<input type="text" class="form-control" name="id_status" id="id_status" data-status="'.$row['id'].'" value="'.$row['id'].'">
<button type="submit" id="likestatus" class="btn btn-primary btn-outline btn-xs"><i class="fas fa-thumbs-up"></i></button>
</form>
';
}
Ajax :
$(document).ready(function(){
$("#likestatus").click(function(){
var id_user=$("#id_user").data("user");
var id_status=$("#id_status").data("status");
$.ajax({
url:'status/like-status.php',
method:'POST',
data:{
id_user:id_user,
id_status:id_status
},
success:function(response){
alert(response);
}
});
});
});
最佳答案
您的代码的问题在于 ID 应该是唯一的,但是在循环中您创建了具有相同 ID 的元素。
在事件处理程序中使用 this
来查找已单击按钮的同级按钮 - 最近返回类型为 form 的父级。
$(document).ready(function(){
$(".btn-primary").click(function(){
var $form = $(this).closest('form');
var id_user=$form.find('[name="id_user"]').data("user");
var id_status=$form.find('[name="id_status"]').data("status");
$.ajax({
url:'status/like-status.php',
method:'POST',
data:{
id_user:id_user,
id_status:id_status
},
success:function(response){
alert(response);
}
});
});
});
您可能希望使用自己的类而不是 .btn-primary
,因为这会影响页面上的所有按钮。
关于PHP/MySQL/AJAX - 更新多个数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50291101/