ajax.data
新增或修改在 Ajax 請求時提交至伺服器的資料。
描述
當向伺服器發出 Ajax 請求時,DataTables 會在內部建構一個資料物件,其中包含請求所需傳送至伺服器的資料。此資料的內容取決於 DataTables 的操作處理模式
- 對於用戶端處理,不會向伺服器提交額外的資料
- 對於伺服器端處理 (
serverSide
),會提交繪製請求參數 - 請參閱伺服器端處理手冊。
ajax.data
選項提供新增額外資料到請求,或在需要時修改提交的資料物件的功能。
原則上,它的運作方式與 jQuery 的 $.ajax.data
屬性完全相同,因為它可以作為一個物件,其中包含要提交的參數和值,但 DataTables 擴充了這一點,也使其具有作為函式的功能,以便在每次 Ajax 請求時重新評估資料(見上文)。
類型
function ajax.data( data, settings )
- 描述
作為一個函式,
ajax.data
選項可用於修改 DataTables 在 Ajax 請求時提交至伺服器的資料,方法是操作 DataTables 在內部建構的原始資料物件,或完全替換它。這提供了在 Ajax 請求時向伺服器提交額外資訊的功能,該函式在每次 Ajax 請求時執行,允許動態計算值。例如,可以從文字輸入欄位讀取值,以作為額外的搜尋選項。
- 參數
名稱 類型 可選 1 data
否 DataTables 為請求建構的資料。如果您使用
serverSide
選項,則此資料將包含伺服器端處理參數。2 settings
否 自 1.10.6 起:DataTables 設定物件 (
DataTables.Settings
)。- 傳回
如果函式沒有傳回值(即
undefined
),則 DataTables 傳遞給函式的原始資料物件將用於請求(函式可能已經操作了它的值)。如果傳回物件,則該物件將用作請求的資料。在傳送之前,它不會與 DataTables 建構的原始資料物件合併。
如果傳回字串,則此字串將用於 Ajax 請求主體中,而不是傳送個別的 HTTP 參數。這對於在請求主體中傳送 JSON 編碼的資料特別有用,因此伺服器可以直接解碼它,而不是傳送個別的 HTTP 參數。請參閱下面的範例,了解如何使用
JSON.stringify()
來實現此目的。
範例
將一個額外的參數 (在此案例中為 user_id
),以靜態值新增至提交的資料
new DataTable('#myTable', {
ajax: {
url: 'data.json',
data: {
user_id: 451
}
}
});
透過操作資料物件將資料新增至請求(函式無傳回值)
new DataTable('#myTable', {
ajax: {
url: 'data.json',
data: function (d) {
d.extra_search = $('#extra').val();
}
}
});
將資料新增至請求(傳回物件)
new DataTable('#myTable', {
ajax: {
url: 'data.json',
data: function (d) {
return $.extend({}, d, {
extra_search: $('#extra').val()
});
}
}
});
在請求主體中以 JSON 格式提交資料
new DataTable('#myTable', {
ajax: {
url: 'data.json',
contentType: 'application/json',
type: 'POST',
data: function (d) {
return JSON.stringify(d);
}
}
});
相關
以下選項直接相關,並且在您的應用程式開發中也可能很有用。