如何获取jquery datatable(datatables.net)的过滤参数?

时间:2013-06-25 10:37:31

标签: jquery-datatables

我正在使用带有服务器端处理和ColumnFiltering附加组件的jquery DataTables(来自datatables.net)。我需要添加一个回调函数,它将根据过滤后的数据计算小计。为了实现这一点,我想做一个单独的ajax调用。如何提取当前的ajax参数?

4 个答案:

答案 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);
        });