15

フォーム内に含まれるテーブルで Datatables という jQuery プラグインを使用しています。このテーブルには多くのフォーム要素が含まれます。

ページに [Save Changes] ボタンがあり、ユーザーが入力した内容に基づいて AJAX 要求を実行し、データベースを更新します。

私が抱えている問題は、Datatable に現在表示されているフォーム要素のみを投稿することです。私が持っている例では、74行あります(すべてにいくつかのフィールドが含まれています)。表示するデフォルトのレコード数は 10 です。

したがって、フォームが送信されると、10 行のフォーム要素のみが送信されます。すべての行のフィールドを送信する必要がありました。この場合は、74 行分のフィールドすべてです。

誰かがこれに対する解決策を持っていますか? ありがとう。

4

1 に答える 1

6

Datatablesは非表示の行を破棄し、DOMから削除します。送信する必要がある場合は、送信する前にfnGetHiddenNodes()を使用して非表示の行を取得する必要があります。APIページを見てください

$.fn.dataTableExt.oApi.fnGetHiddenNodes = function ( oSettings )
{
    /* Note the use of a DataTables 'private' function thought the 'oApi' object */
    var anNodes = this.oApi._fnGetTrNodes( oSettings );
    var anDisplay = $('tbody tr', oSettings.nTable);

    /* Remove nodes which are being displayed */
    for ( var i=0 ; i<anDisplay.length ; i++ )
    {
        var iIndex = jQuery.inArray( anDisplay[i], anNodes );
        if ( iIndex != -1 )
        {
            anNodes.splice( iIndex, 1 );
        }
    }

    /* Fire back the array to the caller */
    return anNodes;
}
于 2012-04-20T08:26:08.000 に答える