ajax响应后如何刷新数据表

问题描述 投票:0回答:1

我有问题,在这里我在重新加载页面并发送ajax时会自动单击按钮,在能够响应后它将创建数据表。问题是当用户再次单击“获取数据”按钮时,出现错误DataTables warning: table id = tAccount - Cannot reinitialise 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
                }
                ]
            });
            });  
            }
        });
});

重新加载数据表页面时第一次单击的时间显示成功,但是在创建数据表之后进行第二次单击时,会导致错误

javascript datatable datatables datatables-1.10
1个回答
1
投票

不是使用jQuery Ajax填充您的DataTable,为什么不使用内置的Ajax函数?这要简单得多。 Follow this example to define your DataTable,然后当您想在按钮内重新加载时,请单击处理程序:

VendorClient.ajax.reload();

或者如果您想更改网址或搜索参数,请执行以下操作:

VendorClient.ajax.url('new-url-here').load();

如果您有要与ajax网址一起发送的选项,则可以define it as an object

通过这种方式,您不必每次都重新创建数据表。

© www.soinside.com 2019 - 2024. All rights reserved.