获取数据表当前绘制查询字符串以发送到服务器以导出为报告

jkm*_*jkm 2 javascript datatable jquery

我有一个从服务器绘制数据的数据表。我尝试使用tabletools导出pdf和excel,但它只导出数据表第一页上的内容,没有导出包括数据表分页上的其他页面。

因此,我想获取当前绘制的查询字符串,以便我可以将其添加到指向另一个服务器请求 url 的链接,该链接将从那里生成报告。

这是我的数据表脚本:

table = $('#table').DataTable({
        processing: true,
        serverSide: true,            
        ajax: {
        url: "http://xxxx/sales",
        data: function ( d ) {
            d.dateGroup = $(".btn.active").attr("data-ecvalue");
            d.startDate = $("input[name=daterangepicker_start]").val();
            d.endDate = $("input[name=daterangepicker_end]").val();               
        }},
        "dom": 'T<"clear">lfrtip',
        "tableTools": {
            "aButtons": [
                {
                    "sExtends": "copy",
                    "sButtonText": "Copy to clipboard"
                },
                {
                    "sExtends": "csv",
                    "sButtonText": "Save to CSV"
                },
                {
                    "sExtends": "xls",
                    "oSelectorOpts": {
                        page: 'current'
                    }
                },
                 {
                      "sExtends": "download",
                      "sButtonText": "Download PDF",
                      "sUrl":     "exportpdf"
                 }
            ]
        },
        type:"POST",
        columns: [
        { "data": "date" },
        { "data": "order" },
        { "data": "totals" },
        { "data": "subtotals" }
        ]
});
Run Code Online (Sandbox Code Playgroud)

我试过 :var mydata = table.fnSettings(); alert(mydata );

但不知道该怎么做......

我使用数据表 v1.10。

小智 5

您的代码就快完成了。

我试图完全按照你的解释去做。所以,我是这样管理的:

$('#export-csv').on('click', function(){
    var data = table.ajax.params(); 
    var x = JSON.stringify(data, null, 4); 

    $(this).attr("href", this.href + "?" + $.param(data) + '&o=csv');
})
Run Code Online (Sandbox Code Playgroud)