как сделать перерисовываемые таблицы данных после ответа ajax - PullRequest
0 голосов
/ 12 января 2020

У меня проблема здесь, сначала я создаю таблицы данных после того, как я выбираю пользователя, используя select2, поэтому данные являются динамическими c в соответствии с выбранным пользователем, затем рядом с ним есть кнопка обновления данных, здесь служит для обновить данные из API, если есть последние данные, для процесса обновления данных нет проблем, но есть проблема в процессе таблиц данных, когда после процесса обновления таблицы данных не хотят перерисовываться

$("#name").on("change",function(){
    var cek_id = this.value;
    $("#user_id").val(cek_id);
    console.log(cek_id);
    $('#getData').DataTable().clear().destroy();
        var i = 1;
        var VendorClient = $("#getData").DataTable({
        order: [ 0, "asc" ],
        processing: true,
        serverSide: false,
        ajax: "{{route('get-user-data')}}"+"/"+cek_id,
        columns: [{
            data: null,
            render: function ( data, type, full, meta ) {
                return  meta.row+1;
            } },

        {
            data: "fullname",
            name: "fullname",
            orderable:false
        },
        {
            data: "date",
            name: "date",
            orderable:false
        }

        ]
    });

});

и вот процесс, когда щелкают обновления данных

 $("#get_data").on("click",function(){
        var cek_id = $("#user_id").val();
        var  url = "{{route('get-update-data')}}"+"/"+cek_id,
        $.ajax({
                type: "get",
                url: url, 
                dataType: "json",
                success:function(data){
                if(data.status=='success'){
                    $('#getData').data.reload();
                }else{
                   $('#getData').data.reload();

                }
                }

            });
    });

Я пробовал различные методы, включая создание переменной глобуса для VendorClient , тогда после ответа ajax я добавляю этот код VendorClient.ajax.reload(null, false); and get errorr (index):406 Uncaught (in promise) TypeError: Cannot read property 'ajax' of undefined
но он не работает, есть идеи?

1 Ответ

1 голос
/ 12 января 2020

Попробуйте перерисовать таблицу:

$('#getData').DataTable().clear().draw();

или

$('#getData').DataTable().columns.adjust().draw(); 

или

$('#getData').DataTable().columns.adjust().draw(false); 
...