Javascript ajax响应后如何刷新数据表
我有一个问题,在这里,我在重新加载页面时自动单击按钮并发送ajax,在能够响应之后,它将创建数据表。 问题是,当用户再次单击“获取数据”按钮时,会出现一个错误Javascript ajax响应后如何刷新数据表,javascript,datatable,datatables,datatables-1.10,Javascript,Datatable,Datatables,Datatables 1.10,我有一个问题,在这里,我在重新加载页面时自动单击按钮并发送ajax,在能够响应之后,它将创建数据表。 问题是,当用户再次单击“获取数据”按钮时,会出现一个错误DataTables警告:table id=tAccount-无法重新初始化DataTable。 这是我的剧本 setTimeout(function() { $("#get_data").trigger('click'); },10); $("#get_data").click(function(){
DataTables警告:table id=tAccount-无法重新初始化DataTable。
这是我的剧本
setTimeout(function() {
$("#get_data").trigger('click');
},10);
$("#get_data").click(function(){
var url = "{{route('get-some-data')}}"
// $('#getData').DataTable().clear().destroy();
$.ajax({
type: "get",
url: url,
dataType: "json",
success:function(data){
Swal.fire({
type: 'success',
title: 'Has been Updated',
text: data.message.id,
}).then(function() {
var VendorClient = $("#tAccount").DataTable({
lengthMenu: [[10, 25, 50, -1], [10, 25, 50, "All"]],
processing: true,
serverSide: false,
ajax: "{{route('some-url-response')}}",
columns: [
{
data: "fullname",
name: "fullname",
orderable:false
},
{
data: "name",
name: "name",
orderable:false
},
{
data: "month",
name: "month",
orderable:false
}
]
});
});
}
});
});
重新加载datatables页面时第一次单击的时间会成功显示,但是在创建datatables后第二次单击时,会导致错误而不是使用jQuery Ajax填充DataTable,为什么不使用内置的Ajax功能呢?这要简单得多,然后,如果要在按钮内重新加载,请单击处理程序执行以下操作:
VendorClient.ajax.reload();
或者,如果要更改url或搜索参数,请执行以下操作:
VendorClient.ajax.url('new-url-here').load();
如果您有想要通过ajax url发送的选项,您可以
通过这种方式,您不必每次都重新创建数据表。您可以将var VendorClient的声明移到顶部,并替换注释代码//$(“#getData”).DataTable().clear().destroy();您可以尝试VendorClient.destroy();我不认为我可以移动它,先生,因为在打开数据表之前,有一个从API更新数据的过程,路径{{route('get-some-data')}}@dev如果我移动到up,数据表将在数据更新之前打开数据库中的数据Kay..可能你是正确的,但是你尝试过了吗?因为我只是想让你在VarVendorClient顶部声明变量;它不会有数据,一旦API调用成功,那么只有您才会有数据。我已经添加了,现在尝试使用VendorClient.ajax.reload(null,false),但它不起作用