Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ajax响应后如何刷新数据表_Javascript_Datatable_Datatables_Datatables 1.10 - Fatal编程技术网

Javascript 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(){

我有一个问题,在这里,我在重新加载页面时自动单击按钮并发送ajax,在能够响应之后,它将创建数据表。 问题是,当用户再次单击“获取数据”按钮时,会出现一个错误
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),但它不起作用