如何更改DataTables中的AJAX数据

时间:2016-03-23 04:37:24

标签: ajax datatables fetch

我有一个DataTable,能够在初始化表格时成功获取AJAX数据
现在我需要能够"重新获取&#34 ;用于更新DataTable的AJAX数据,但没有重新初始化表格。

经过一些研究后我发现我需要使用以下行"作为函数":

ajax.data( data, settings )

在此解释:http://datatables.net/reference/option/ajax.data

然而。我找不到如何使用这个"作为一个功能"。它在页面上没有一个例子。

我尝试了如下。
我最初的DataTable创建:

launch_datatable_ajax = function(){
    get_ajax_data();

    dyn_t = $('#dynamic_table').DataTable({
            "ajax": {
                "url":ajax_url,
                "data":data,
                "dataSrc":""
            },
            "columns": [
                { "data" : "ID" },
                { "data" : "post_title" },
                { "data" : "supplier_company" },
                { "data" : "img_src" },
                { "data" : "tags" },
                { "data" : "post_meta" },
            ],

    });

}

然后我尝试使用新参数重新加载数据。 在这里,我被困住了。

dyn_t.ajax.data(data,dyn_t.settings);

我认为我的参数是正确的:
dyn_t.settings给出了一些关于console.log(dyn_t.settings);的信息 '数据'在console.log(data);

上提供我的对象(获取变量)

但是console.log说:

  

未捕获的TypeError:dyn_t.ajax.data不是函数(...)

1 个答案:

答案 0 :(得分:0)

可以使用dyn_t.ajax.reload();重新加载。

但是,您的要求是将更新的URL参数也发送到服务器。

为此,您需要使用ajax的函数参数:http://datatables.net/reference/option/ajax#function

该功能在每次ajax.reload()次呼叫中重新验证。这就是为什么要发送新的参数。因此,假设您有一个ID为my-form的HTML表单,请尝试以下操作:

            ajax: function ( data, callback, settings ) {
                $.ajax({
                    url: "ajax_url?" + $("my-form").serialize(),
                    data: { start: data.start, count: data.length }
                });
            },