0

これは私のコードです

<script>
$(document).ready(function() {



    // delete the entry once we have confirmed that it should be deleted

    $('.delete').click(function() {

        var parent = $(this).closest('tr');


        $.ajax({

            type: 'POST',

            url: 'delete.php', 

            data: 'ajax=1&delete=' + $(this).attr('id'),



            success: function() {

                parent.fadeOut(300,function() {

                    parent.remove();

                });

            }

        });        

    });


    $('.delete').confirm({



    });    

});

</script>

私の質問は、delete.phpが実行されない理由です。同じフォルダにありますが、このファイルにabsolure urlと入力する必要がありますか?しかし、それの最良の点は、テーブルの行が削除されているが、phpファイルが実行されていないことです。そして2番目の質問は、なぜこのコードがこの行なしでは機能しないのかということです。

  $('.delete').confirm({



        });   

phpファイルで私はこれが実行されていることを知っています:

<script>
alert('aaaa');
</script>

または私もそれを変更しましたecho 'something';が、それでも機能していません

4

3 に答える 3

0

あなたの場合はphpファイルが実行されると思いますが、http://www.example.com/delete.phpのような絶対パスでURLを定義する方が良い方法です。ただし、データを渡す方法は標準どおりではありません。

したがって、この行を置き換えます。

data: 'ajax=1&delete=' + $(this).attr('id'),

data: { ajax: 1, delete: $(this).attr('id')},

デバッグ用に、phpファイルに$_POST変数を出力します。

それが役に立てば幸い。

于 2012-09-09T11:05:28.340 に答える
0

エラーハンドラを追加して、ajax呼び出しで何が起こっているかを確認します。次のようになります。

error: function(jqXHR, textStatus, errorThrown) {
    console.log(errorThrown);
}

ajax呼び出しは、設定した相対URIの前に現在のディレクトリを追加することに注意してください。動作中のWebサーバーにリクエストを送信している、つまりHTTPプロトコルを使用していると仮定します。

私の知る限り、confirm()jQuery関数はありません。あなたは通常します:

if (confirm('Are you sure you want to delete this item?')) do_delete();

confirm()メソッドは、ユーザーが[OK]を選択するとtrueを返し、それ以外の場合はfalseを返します。

乾杯。

于 2012-09-09T11:42:55.367 に答える
0

行が削除された場合、確かにphpファイルが実行され、@Saifuddinが説明したようにURLデータを確認する必要があります。

Firebugコンソールを使用して結果を確認します。また、成功関数にパラメーターを渡していない

だからこれを変更する

data: { ajax: 1, delete: $(this).attr('id')},

そしてこれも

success: function(msg) {
   alert(msg)
   parent.fadeOut(300,function() {
      parent.remove();
   });
}
于 2012-09-09T11:47:39.510 に答える