Не удалось получить значение table.search () при реализации таблицы данных на стороне сервера с помощью фильтра по столбцам - PullRequest
0 голосов
/ 19 октября 2019

Не могли бы вы помочь мне разобраться с этой проблемой.

Нам нужно реализовать серверную часть данных с фильтрацией по столбцам, и мы уже сделали это. Это работает нормально.

Но хотя мы удаляем значение из фильтра, оно не отображает все данные.

Код:

if ( table.column(i).search() !== this.value ) {
    reload_datatable();
}

table.column (i). search () Всегда возвращать пустое значение, поэтому, когда я удаляю значение из текстового поля, не отображаются все данные.

Если я выполняю поиск по значению, это работает: http://prntscr.com/plfasv Но теперь я удаляю это значение, а затеммне нужно показать все данные, но только одну запись с этим фильтром: http://prntscr.com/plfb31

Я знаю проблему из-за table.column (i) .search () Всегда возвращать пустое значение.

Позвольте мне добавить код:

$(document).ready(function(){
    table = $('#PaymentListTable').DataTable({
        "processing": true,
        "serverSide": true,
        "pageLength": 20,
        bSort: false,
        initComplete: function () {
            this.api().columns().every( function (i) {
                var column = this;
                var cust_label = $("#filters").find("th").eq(i).attr('cdata-filter');
                var filter_type = $("#filters").find("th").eq(i).attr('cfilter-type');
                $('<input type="text" placeholder="Search by '+cust_label+'" />')
                .appendTo($("#filters").find("th").eq(column.index()))
                .on( 'keyup change', function () {
                    if ( table.column(i).search() !== this.value ) {
                        reload_datatable();
                    }
                });
            });
        },
        "order": [],
        language: { search : "",searchPlaceholder: "Search..." },
        "ajax": {
            "url": '<?php echo base_url('admin/getPaymentLists/'); ?>',
            "type": "POST",
            "data": function ( data ) {
                data.student = $('#filters th:nth-child(1) select').val();
                data.level = $('#filters th:nth-child(2) select').val();
                data.invoice = $('#filters th:nth-child(3) input').val();
                data.amt = $('#filters th:nth-child(4) input').val();
                data.method = $('#filters th:nth-child(5) select').val();
                data.txn_id = $('#filters th:nth-child(6) input').val();
                data.date = $('#filters th:nth-child(7) input').val();
            }
        },
        "columnDefs": [{ 
            "targets": [],
            "orderable": false
        }]
    });
});

Так, как я могу решить эту проблему. Пожалуйста, помогите мне, я пытаюсь с давних времен, но все еще не повезло.

Спасибо

...