次のように初期化するデータテーブルがあります。
mytable = DataTable({
ajax:{
url: "/url/getTableData",
dataSrc: ""
},
sortClasses: false,
paging: false,
scrollY: 300,
columns: cols
});
後でやりたい
mytable.ajax.reload();
正常に動作しますが、そのリクエストでいくつかのパラメータを送信したいと思います。これらのパラメータは、テーブルの初期化ではなく、リロード時にのみ必要です。それ、どうやったら出来るの?ありがとうございました!
オプション1-preXhr.dtイベントを使用します。
_table = $('#example')
.on('preXhr.dt', function ( e, settings, data ) {
data.whateveryouwant = $("#someidhere").val()
data.anotherexample = "kittens"
} )
// then just setup your datatable as normal
.DataTable({
ajax:{
url: "/url/getTableData",
type: "GET" // This is the default value, could also be POST
},
sortClasses: false,
paging: false,
scrollY: 300,
columns: cols
});
_
ここを参照 http://datatables.net/reference/event/
オプション2(推奨)-ajax.data関数を使用します。
_table = $('#example').DataTable({
ajax:{
url: "/url/getTableData", // Change this URL to where your json data comes from
type: "GET", // This is the default value, could also be POST, or anything you want.
data: function(d) {
d.whateveryouwant = $("#someidhere").val()
d.anotherexample = "kittens"
}
},
sortClasses: false,
paging: false,
scrollY: 300,
columns: cols
});
_
どちらのオプションでも同じ結果が得られます。サーバーは違いを認識しません。追加のデータは、すべてのtable.ajax.reload()
に追加されます。追加のデータは次のようになります。
whateveryouwant
の_#someidhere
_要素の値、および
anotherexample
の値は_"kittens"
_
オプション2をお勧めします。これは、リクエストごとに追加のデータが追加されていることがより明白だからです。最初のオプションは少し卑劣で、他の誰かがあなたのコードを読んでいるほど明白ではないと思います。