{hero}

ajax.data

自 DataTables 1.10 起

新增或修改在 Ajax 請求時提交至伺服器的資料。

描述

當向伺服器發出 Ajax 請求時,DataTables 會在內部建構一個資料物件,其中包含請求所需傳送至伺服器的資料。此資料的內容取決於 DataTables 的操作處理模式

  • 對於用戶端處理,不會向伺服器提交額外的資料
  • 對於伺服器端處理 ( serverSide ),會提交繪製請求參數 - 請參閱伺服器端處理手冊

ajax.data 選項提供新增額外資料到請求,或在需要時修改提交的資料物件的功能。

原則上,它的運作方式與 jQuery 的 $.ajax.data 屬性完全相同,因為它可以作為一個物件,其中包含要提交的參數和值,但 DataTables 擴充了這一點,也使其具有作為函式的功能,以便在每次 Ajax 請求時重新評估資料(見上文)。

類型

物件

描述

作為一個物件,ajax.data 選項用於擴充 DataTables 在內部建構以提交至伺服器的資料物件。這提供了一種簡單的方法,可將其他靜態參數新增到要傳送至伺服器的資料中。對於動態計算的值,請使用 ajax.data 作為函式(見下文)。

function ajax.data( data, settings )

描述

作為一個函式,ajax.data 選項可用於修改 DataTables 在 Ajax 請求時提交至伺服器的資料,方法是操作 DataTables 在內部建構的原始資料物件,或完全替換它。

這提供了在 Ajax 請求時向伺服器提交額外資訊的功能,該函式在每次 Ajax 請求時執行,允許動態計算值。例如,可以從文字輸入欄位讀取值,以作為額外的搜尋選項。

參數
傳回

如果函式沒有傳回值(即 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);
		}
	}
});

相關

以下選項直接相關,並且在您的應用程式開發中也可能很有用。