我正在使用数据库中的值填充表。我在行中包含了一个可以删除的删除图标。该图像具有onclick='deleteCat(id);'
属性,id通过循环从json数组中获取,如下所示:
string = "<td align='center'><a href=''><img border='0' src='../images/Bullet-Delete.png' alt='delete' onclick='deleteCat("+json[i]['id']+");'/></a></td>";
这是我的deleteCat
功能:
function deleteCat(id){
var dataString = "catId=" + id;
$.ajax({
type: "POST",
url: "../ajax/categorie_verwijderen.php",
data: dataString,
success: function(data) {
//$("#allecat").find("tr:gt(0)").remove();
//update_table();
}
});
//alert(id);
}
当我在ajax之后发出警报时,我的功能正常工作。表刷新,行从我的数据库中删除。但是,当我删除警报时,我的函数不起作用,表格将刷新,表格和数据库中仍然存在该行。
提前致谢。
答案 0 :(得分:3)
您需要阻止点击的默认事件 - 即每次点击图片时都会重新加载页面
function deleteCat(id){
var dataString = "catId=" + id;
$.ajax({
type: "POST",
url: "../ajax/categorie_verwijderen.php",
data: dataString,
success: function(data) {
$("#allecat").find("tr:gt(0)").remove();
update_table();
}
});
return false; // prevent the browser following the href
}
您还需要更改您的html:
onclick='return deleteCat("+json[i]['id']+");
答案 1 :(得分:1)
alert()有帮助,因为这延迟了该函数中剩余javascript的处理。 ajax异步发送数据。 async键为Default:true,应在调用中将其更改为 false ,直到客户端等待ajax调用结束。 e.g:
$.ajax({
async:false,
url: "test.html",
.
.
});