Серверная сторона DataTable JS clear () не работает - PullRequest
0 голосов
/ 28 сентября 2018

В проекте Laravel я использую DataTable JS (с обработкой на стороне сервера) для отображения таблиц.Мне нужны некоторые пользовательские функции, для которых я хочу использовать API-интерфейс DataTable. Уже давно пытались что-то сделать, но я не могу очистить dataTable, чтобы вставить новые данные и перерисовать их.Можете ли вы помочь мне с этим.

Вот соответствующая часть моего кода JS

Инициализация Datatable

      dt = $('#dataTable').DataTable({
            'processing': true,
            'serverSide': true,
            'select': 'multiple',
            'ajax': {
                'url' :'{!! url('/') !!}/newOrderData',
                'type': 'POST',
                'headers': {
                    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                }
            },
            'columns': [
                { 'data': 'id', 'name': 'id' },
                { 'data': 'name', 'name': 'name' },
                { 'data': 'area', 'name': 'area' },
                { 'data': 'estimate', 'name': 'estimate' },
            ],
            "columnDefs": [
                { className: "orderId", "targets": [ 0 ] }
             ]
        });

Попыткаочистить данные и перерисовать с помощью нового

        $('#areas').change(function(){
           var areaId = $(this).val();
           var token = "{{ csrf_token() }}";

           dt.clear().draw();

           $.post('{!! url('/') !!}/newOrderData',{area: areaId,_token:token}, function(newDataArray) {


                dt.rows.add(newDataArray); // Add new data
                dt.draw(); 

            });

        });

Когда запускается обработчик события изменения, ничего не происходит, ошибок нет, таблица показывает знак обработки, но все остается тем же.

Я следил за этим вопросом .Но решение, похоже, не работает для меня.Пожалуйста, помогите.

1 Ответ

0 голосов
/ 04 октября 2018

Попробуйте этот код, чтобы очистить ваши данные,

$('#areas').change(function(){
           var areaId = $(this).val();
           var token = "{{ csrf_token() }}";
           var dt = $('#dataTable').DataTable(); //create new object of the datatable
           dt.clear().draw();

           $.post('{!! url('/') !!}/newOrderData',{area: areaId,_token:token}, function(newDataArray) {


                dt.rows.add(newDataArray); // Add new data
                dt.draw(); 

            });

        });

Я также столкнулся с этой проблемой, и это решение работает для меня.

Надеюсь, это будет работать для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...