我正在使用带有服务器端处理和ColumnFiltering附加组件的jquery DataTables(来自datatables.net)。我需要添加一个回调函数,它将根据过滤后的数据计算小计。为了实现这一点,我想做一个单独的ajax调用。如何提取当前的ajax参数?
答案 0 :(得分:8)
将datatable对象分配给创建时的var,例如:
var oTable = $("selector").dataTable({...});`
稍后使用此:
var params = oTable.oApi._fnAjaxParameters(oTable.dataTable().fnSettings());
它返回所有ajax参数,这些参数将在数据表的正常数据加载请求中发送。像这样进行ajax调用:
$.post("url",$.param(params),function(response){....});
答案 1 :(得分: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 );
} );
答案 2 :(得分: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的回复 - 帮助我自己的餐桌!我很难找到其他参数,所以我想我会在这里分享。
答案 3 :(得分: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);
});