我有一个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不是函数(...)
答案 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 }
});
},