如何使用ajax更新多个数据?
例子:
表
编号:1,2
姓名:杰克,约翰
它只对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);
}
});
});
});
4条答案
按热度按时间r7knjye21#
你多次使用身份证。因此你对
var id_user=$("#id_user").data("user");
始终查找页面上的第一个输入字段。你应该避免在一个页面上多次使用同一个id(参见这个问题)。您可以订阅jquery
submit
事件,然后搜索该窗体中的输入字段,以正确提取id_user
以及status_user
价值观。为此,必须向<form>
元素。为了找到表单,我建议添加一个css类,比如like-status-form
.要检测表单元素,可以使用jquery属性equals选择器。
找到一个工作的例子https://jsfiddle.net/07yzf8k1/
k4emjkb12#
代码的问题是id应该是唯一的,但是在循环中创建了具有相同id的元素。
使用
this
在事件处理程序中查找已单击的按钮的同级-closest返回form类型的父级。您可能希望使用自己的类而不是
.btn-primary
因为这会影响页面上的所有按钮。4nkexdtk3#
让你的id独一无二,让他们充满活力
然后
xpszyzbs4#
从不完整的php来看,似乎您没有将
$ruser
在你的循环中。这意味着你总是把同一个身份证发到like-status.php
.附言:本可以发表评论,但我不能。