【问题标题】:How to change AJAX data in DataTables如何更改 DataTables 中的 AJAX 数据
【发布时间】:2016-03-23 04:37:24
【问题描述】:

我有一个DataTable,它能够在初始化表时成功获取一次 AJAX 数据
现在我需要能够“重新获取”AJAX 数据以更新 DataTable ,但不会重新初始化表格。

经过一番研究,我发现我需要使用以下行“作为函数”:

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);
'data' 给我的对象(get 变量):console.log(data);

但是 console.log 说:

Uncaught TypeError: dyn_t.ajax.data is not a function(…)

【问题讨论】:

    标签: ajax datatables fetch


    【解决方案1】:

    可以使用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 }
                    });
                },
    

    【讨论】:

    • 这会重新加载 ajax 但不会获得新的 get-values。
    • 由于是ajax调用,所以从服务器获取的数据会反映在数据表中。这不是正在发生吗?您能否检查来自服务器的新数据是否实际上与初始数据不同?
    • 再次获取数据,但我的用户填写了不同的内容以搜索其他数据。所以我的意思是说我需要重新加载 ajax 但使用不同的 get 值。如果我只是重新加载它会导致原始获取值。我使用了函数 get_ajax_data();检索新的 get 值并将它们粘贴到数据表使用的作业 url 中。
    • 是在函数内部初始化数据表还是在单独的函数中重新运行已初始化的数据表上的 ajax 调用?
    • 在数据表初始化器中,ajax 字段。
    猜你喜欢
    • 1970-01-01
    • 2016-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多