1

我正在用我的数据库中的值填充一个表。我在可以删除的行中包含了一个删除图标。图像有一个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 之后发出警报时,我的功能起作用。表刷新,行从我的数据库中删除。但是,当我删除警报时,我的功能不起作用,表被刷新并且该行仍然存在于表和数据库中。

提前致谢。

4

2 回答 2

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']+");
于 2012-05-15T09:06:11.950 回答
1

alert() 有帮助,因为这会延迟该函数中剩余 javascript 的处理。ajax 异步发送数据。async 键是默认值:true 并且应该在您的调用中将其更改为false,直到客户端等待 ajax 调用结束。例如:

$.ajax({
  async:false,
  url: "test.html",
  .
  .

});
于 2012-07-18T09:44:31.260 回答