Javascript 使用ajax删除来自DB的具有动态id的表行
我有一个表,它的内容来自数据库。当我点击删除按钮时,我想用Ajax删除该行。实际上现在它正在工作,但是有一个bug,当我点击按钮时,所有的行都被删除了,然后如果我刷新,我被删除的行就会消失,其他行也会显示出来。但是正如我说的,它需要刷新。任何解决方案都将不胜感激Javascript 使用ajax删除来自DB的具有动态id的表行,javascript,php,jquery,Javascript,Php,Jquery,我有一个表,它的内容来自数据库。当我点击删除按钮时,我想用Ajax删除该行。实际上现在它正在工作,但是有一个bug,当我点击按钮时,所有的行都被删除了,然后如果我刷新,我被删除的行就会消失,其他行也会显示出来。但是正如我说的,它需要刷新。任何解决方案都将不胜感激 $('.dashboard订阅表单')。提交(()=>{ event.preventDefault(); const currentHiddBtn=$('.dash订阅表单btn'); console.log(currentHiddB
$('.dashboard订阅表单')。提交(()=>{
event.preventDefault();
const currentHiddBtn=$('.dash订阅表单btn');
console.log(currentHiddBtn.closest('tr');
const userCaution=confirm('要删除此报价?');
if(userCaution){//if admin坚持删除该行
常量deleteId=$('.dash订阅表单btn').attr('value');
$.ajax({
类型:“POST”,
url:“删除subscribe.php”,
数据类型:“json”,
数据:{
deleteId:deleteId
},
成功:(数据)=>{
如果(data.code==“200”){
log('It works!');
currentHiddBtn.closest('tr').css('background','tomato');
currentHiddBtn.closest('tr').fadeOut(1200,()=>{
});
}else if(data.code=='404'){
警报('发生错误!请重试');
}
}
});
}
});代码>
我认为,在本例中,主要问题是使用CSS类作为选择器,无论单击哪个项目,它似乎都是选择第一个实例
导致这种情况的代码是:
constdeleteid=$('.dash订阅表单btn').attr('value');
您希望从从.submit()
传递的事件
对象中获取目标输入
我已经创建了一个示例,其中的一个示例可以适应您的代码,但这里是jQuery部分的快速预览
$('.dashboard订阅表单')。提交((事件)=>{
event.preventDefault()
console.log(event.target.elements[0][“value”])
$(“#单击的结果”).html(“输入值:“+event.target.elements[0][“Value]”)
})
它选择元素数组中的第一个元素作为输入。如果需要该按钮,可以使用event.target.elements[1]
然后还可以使用返回的值删除具有相同id的
,而不是查找最近的。这可以在您的ajax
调用的success
部分中完成,而无需进行刷新。我认为这是因为delete subscribe.php
文件不存在。您在哪里运行delete?@misterjojojo否我已经创建了相关的itadd codes delete-subscribe.php,您所说的bug是什么意思,这就是所有行被删除?你可以使用标题('location:yourpage.php');退出()代码>以刷新页面。或者setTimeout(函数(){window.location='index.php';},1000)
在ajax成功函数中,在ajax成功回调中看到这个问题,为什么不这样做:$('#row-'+deleteId).css('background','tomato').fadeOut(1200)代码>而不是使用最近的()搜索元素。
?您要删除的tr
有一个ID,因此只需使用该ID即可。