我正在使用带有服务器端处理和 ColumnFiltering 附加组件的 jquery DataTables(来自 datatables.net)。我需要添加一个回调,它将根据过滤的数据计算小计。为了实现这一点,我想进行单独的 ajax 调用。如何提取当前的 ajax 参数?
问问题
8100 次
4 回答
8
在创建时将数据表对象分配给 var,例如:
var oTable = $("selector").dataTable({...});`
以后用这个:
var params = oTable.oApi._fnAjaxParameters(oTable.dataTable().fnSettings());
它返回所有将在数据表的正常数据加载请求中发送的 ajax 参数。像这样进行 ajax 调用:
$.post("url",$.param(params),function(response){....});
于 2013-06-26T04:32:09.293 回答
5
如果您使用的是 DataTables 1.10(此答案的当前版本),现在使用 ajax.params() 方法更容易访问。
来自http://datatables.net/reference/api/ajax.params()的示例
var table = $('#example').DataTable( {
ajax: "data.json",
serverSide: true
} );
table.on( 'xhr', function () {
var data = table.ajax.params();
alert( 'Search term was: '+data.search.value );
} );
于 2015-02-09T19:08:05.963 回答
0
根据您的问题,您可能还需要 ajax 排序参数。下面的代码假设您有一个名为“your_table”的数据表。
$.ajax({
url: "your_url",
data: {
orderColumn: your_table.ajax.params().order[0]['column'],
orderDirection: your_table.ajax.params().order[0]['dir'],
searchText: your_table.ajax.params().search.value
}
});
谢谢 MrDerp 的回复 - 帮我准备了自己的桌子!我很难找到其他参数,所以我想我会在这里分享。
于 2017-05-04T23:13:03.660 回答
0
尝试这个:
table.on( 'xhr', function () {
var data = table.ajax.params();
var filter_values = [];
//suppose you have 10 columns in your datatable
for(i=0;i<10;i++){
search_value = "sSearch_"+i;
filter_values.push(data[search_value])
}
console.log(filter_values);
});
于 2018-12-01T05:17:22.563 回答