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はデータを非同期で送信します。非同期キーはデフォルト:trueであり、クライアントがajax呼び出しの終了を待つまで、呼び出しでfalseに変更する必要があります。例えば:

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

});
于 2012-07-18T09:44:31.260 に答える