0

これが私がAJAXで達成しようとしていることです。私はこれまで AJAX を使用したことがないため、達成しようとしていることが正しい使用法であるかどうかさえわかりません。サイトのユーザーが受信トレイに蓄積された特定のメッセージを削除できる速度を上げようとしています。私のサイトの以前のバージョンでは、メッセージを削除するたびにページを更新する必要があり、かなり遅くなる可能性がありました。これを修正するために、ユーザーが「削除」ボタンを押したときにフォームをトリガーする代わりに、クライアント側で jquery をセットアップしてメッセージ html を消去し、サーバーにメッセージを削除するように伝える非同期 POST 要求を送信することにしました。データベース。

$(document).ready( function() {
    $(".deleteButton").click(function() {
           var id = $(this).attr('id');
           $("tr#"+id).slideUp("fast");
           $.ajax({type: "post",
                 url: "/message",
                 data: {"delete_mes": id}});
    });
});

これはほとんど機能します。[削除] をクリックするたびにメッセージが消え、ページをリロードしてもまだ消えており、サーバーがメッセージを正常に削除したことを示しています。ただし、ページをリロードする前に複数のメッセージを削除すると、最初のメッセージを除くすべてのメッセージが再表示されます。

うまくいけば、ajaxの経験が豊富な人が何が悪いのかを知っているでしょう。私のサーバーは Google App Engine でセットアップされています。ありがとう!

4

1 に答える 1

0

最初: ページで同じ ID を複数回使用しないでください。

私はあなたのために解決策を作りました。このjsFiddleをチェックしてください。

$(document).ready( function() {
    $(".deleteButton").click(function() {
        var parent = $(this).parent('tr');
        var id = parent.attr('id');
        parent.slideUp("fast");
        // your ajax
    });
});
于 2013-03-13T18:27:08.673 に答える