0

フォームからの情報を使用してサーバー側で処理する DataTables を使用しています。フォーム送信時にデータテーブルが Ajax リクエストを送信すると、このリクエストは Java サーブレットによって処理されます。

いくつかの問題の後、Firebug を使い始めることにしました。送信ボタンをクリックすると、firebug が次の Jquery 関連のエラーを返します。

// Do send the request
// This may raise an exception which is actually
// handled in jQuery.ajax (so no try/catch here)
xhr.send( ( s.hasContent && s.data ) || null ); 

Firebug を使用してリクエストを再送信すると、リクエストは正しく処理されます。つまり、JSON レスポンスがブラウザに送信されます。

サーブレットの準備ができていないなど、呼び出しの順序に問題があるように感じます。これにより、再送信要求が成功する理由が説明されます。確かではありませんが。

DataTables jquery コード:

$(document).ready(function() {
    $("#searchResults").dataTable({
        "bJQueryUI": true
        });
    $('.searchsubmit').click(function() {
        var formData = $('form').serialize();
        $("#searchResults").dataTable({
            "bDestroy": true,
            "bProcessing": true,
            "bServerSide": true,
            "sAjaxSource": 'Search',
            "sServerMethod": "POST",
            "aoColumns": [
                          { "mDataProp": "messagecaseid" },
                          { "mDataProp": "messagesubject" },
                          { "mDataProp": "messagesender" },
                          { "mDataProp": "messagereceiver" }
                      ],
            "fnServerParams": function ( aoData ) {
                aoData.push({"name": "formData", "value": formData}
                        );
            }
        });
    });
});
4

1 に答える 1

0

onClick メソッドで戻り値を false に設定して、ページが更新されず、Datatables がテーブルにデータを入力する機会を得るようにします。

于 2012-06-14T08:25:02.380 に答える