2016-07-19 10 views
0

私は、サーバー側ハンドラでdatatablesを使用します。メジャーコード:シリアル化されたフォームデータをデータテーブルに渡すにはどうすればいいですか?

$("#dt-flats-build").dataTable({ 
    processing: true, 
    serverSide: true, 
    ajax: { 
       url: "/api.json", 
       data: $('form#filter').serialize() 
    }, 
    }); 

と私はフィルタ付きのフォームを持っています。私はフォームデータをapi.jsonにaddential paramsとして渡します。

フィールドを1つずつ渡すことはできますが、フォームのすべてのフィールドを渡すことはできません。 アイデアはありますか?ここ

+0

なぜフォームオブジェクトをシリアル化しませんか? myformがフォームオブジェクトであると仮定して、$(myform).serialize() – sid

+0

を使ってみてください。フォーム#フィルタはフォームです。私はjqueryを使ってシリアル化しますが、ajaxリクエストではフォームのフィールドは表示されません。 –

+0

追加してみてください - タイプ: "POST"、ajax:{} – sid

答えて

1

私は解決策を見つけることを、考える:

ajax: { 
    url: "/api.json", 
    data: function (d) { 
    d.form = $('form#filter').serializeArray(); 
    } 
} 

フォームは、VARに置く "フォーム" を

1

チェックアウト - デフォルトでhttps://datatables.net/examples/server_side/post.html

は、DataTableのは、サーバー側の処理データを得ることができるAjaxリクエストは、HTTP GETリクエストです。ただし、POSTを使用する場合があります。これは、ajax初期化オプションのtypeオプションを使用すると非常に簡単に行えます。

使用 -

"ajax": { 
     url: "/api.json", 
     "type": "POST", 
     data: $('form#filter').serialize() 
    }, 
関連する問題