【发布时间】:2018-08-21 09:09:37
【问题描述】:
我使用 sAjaxSource 参数制作了一个带有服务器端处理的数据表。
$('#tbl-kamus').DataTable({
"processing": true,
"bServerSide": true,
"sAjaxSource": srcUri ,
...
当它向服务器发出请求时,它会使用以下参数发送 GET 数据:
sEcho: 1
iColumns: 4
sColumns: ,,,,,,
iDisplayStart: 0
iDisplayLength: 30
mDataProp_0: 0
sSearch_0:
bRegex_0: false
bSearchable_0: true
bSortable_0: false
mDataProp_1: 1
sSearch_1:
bRegex_1: false
bSearchable_1: true
bSortable_1: true
mDataProp_2: 2
sSearch_2:
bRegex_2: false
bSearchable_2: true
bSortable_2: true
mDataProp_3: 3
sSearch_3:
bRegex_3: false
bSearchable_3: true
bSortable_3: false
sSearch:
bRegex: false
iSortCol_0: 1
sSortDir_0: desc
iSortCol_1: 2
sSortDir_1: desc
iSortingCols: 2
并使用 php 中的那些 GET 参数来处理请求。 然后我需要向请求添加更多参数,所以我将选项更改为
$('#tbl-kamus').DataTable({
"processing": true,
"bServerSide": true,
"ajax": {
"url": srcUri,
"data": {
"user_id": userID
}
...
整个请求参数变成了类似数组的东西:
draw: 1
columns[0][data]: 0
columns[0][name]:
columns[0][searchable]: true
columns[0][orderable]: false
columns[0][search][value]:
columns[0][search][regex]: false
columns[1][data]: 1
columns[1][name]:
columns[1][searchable]: true
columns[1][orderable]: true
columns[1][search][value]:
columns[1][search][regex]: false
columns[2][data]: 2
columns[2][name]:
columns[2][searchable]: true
columns[2][orderable]: true
columns[2][search][value]:
columns[2][search][regex]: false
columns[3][data]: 3
columns[3][name]:
columns[3][searchable]: true
columns[3][orderable]: false
columns[3][search][value]:
columns[3][search][regex]: false
order[0][column]: 1
order[0][dir]: desc
order[1][column]: 2
order[1][dir]: desc
start: 0
length: 30
search[value]:
search[regex]: false
user_id: 2
所以我必须更改我的服务器端脚本以适应它,这是我避免的。然后作为一种解决方法,我继续使用 sAjaxSource 并将 user_id 附加到 url 中,例如:
"sAjaxSource":srcUri+"?user_id="+userID+"&",
困扰我的是为什么他们有不同的请求参数格式。谁能解释一下为什么它们不同以及每种方法之间的意义是什么?
编辑:
对不起,我的解释可能不是很清楚。我在这里要问的不是如何在数据表 ajax 中传递参数。虽然我非常感谢提到 fnServerParams,这是我需要的 atm。
我在这里要问的是为什么sAjaxSource和ajax之间的请求参数如此不同? 或者两种方法都有不同的目的? 我似乎无法在文档中找到它。
【问题讨论】:
-
使用
fnServerParams而不是以编程方式添加它们。你真的不能避免数组样式,因为这是 DT 传递回来的方式,例如在 certian 列上进行排序。 datatables.net 上都有详细记录
标签: javascript datatable datatables