Скрытый столбец и фильтрация данных в таблицах данных - PullRequest
0 голосов
/ 17 октября 2019

У меня проблема с таблицей данных. Я буду отображать данные из базы данных в таблицу с помощью AJAX. Я сделал фильтр, который отправляет данные в php-файл с ajax.

И он работает без проблем, но я добавил функцию скрытия столбцов и после скрытия любых столбцов я не могу фильтровать по полям. ошибка:

Uncaught TypeError: Невозможно прочитать свойство 'значение' с нулевым значением в getPage (test.php? login = yes: 2030) при запуске (test.php? login = yes: 2002) в HTMLButtonElement.onclick (test.php? login = yes: 2425)

function getPage() {
    var odTermin = document.getElementById("odTermin").value;
    var doTermin = document.getElementById("doTermin").value;
    var firma = document.getElementById("firma").value;
    var miejscowosc = document.getElementById("miejscowosc").value;
    var kierowca = document.getElementById("kierowca").value;
    var iloscPalet = document.getElementById("iloscPalet").value;
    var wz = document.getElementById("wz").value;
    var uwagi = document.getElementById("uwagi").value;
    var GotoweSelect = document.getElementById("GotoweSelect").value;
    var ZaladowanySelect = document.getElementById("ZaladowanySelect").value;
    var PrzerzutySelect = document.getElementById("PrzerzutySelect").value;
    var OdbiorySelect = document.getElementById("OdbiorySelect").value;
    var OkresSelect = document.getElementById("OkresSelect").value;
    var DokumentSelect = document.getElementById("DokumentSelect").value;
    var ZadGotSelect = document.getElementById("ZadGotSelect").value;

    var raben;
    if ($("#raben").is(":checked")) {
        raben = 'T';
    } else {
        raben = 'N';
    }

    if (firma) {
        firma = firma;
    } else {
        firma = 'null';
    }

    if (miejscowosc) {
        miejscowosc = miejscowosc;
    } else {
        miejscowosc = 'null';
    }

    if (kierowca) {
        kierowca = kierowca;
    } else {
        kierowca = 'null';
    }

    if (iloscPalet) {
        iloscPalet = iloscPalet;
    } else {
        iloscPalet = 'null';
    }

    if (wz) {
        wz = wz;
    } else {
        wz = 'null';
    }

    if (uwagi) {
        uwagi = uwagi;
    } else {
        uwagi = 'null';
    }

    if (GotoweSelect) {
        GotoweSelect = GotoweSelect;
    } else {
    GotoweSelect = 'null';
    }

    if (ZaladowanySelect) {
        ZaladowanySelect = ZaladowanySelect;
    } else {
        ZaladowanySelect = 'null';
    }

    if (PrzerzutySelect) {
        PrzerzutySelect = PrzerzutySelect;
    } else {
        PrzerzutySelect = 'null';
    }

    if (OdbiorySelect) {
        OdbiorySelect = OdbiorySelect;
    } else {
        OdbiorySelect = 'null';
    }

    if (OkresSelect) {
        OkresSelect = OkresSelect;
    } else {
        OkresSelect = 'null';
    }

    if (DokumentSelect) {
        DokumentSelect = DokumentSelect;
    } else {
        DokumentSelect = 'null';
    }

    if (ZadGotSelect) {
        ZadGotSelect = ZadGotSelect;
    } else {
        ZadGotSelect = 'null';
    }



    $('document').ready(function () {
        $.ajax({
            type: 'POST',
            url: 'ajaxfile.php',
            dataType: 'json',
            data: 'od='+odTermin+
                '&do='+doTermin+
                '&raben='+raben+
                '&firma='+firma+
                '&miejscowosc='+miejscowosc+
                '&kierowca='+kierowca+
                '&iloscPalet='+iloscPalet+
                '&wz='+wz+
                '&uwagi='+uwagi+
                '&GotoweSelect='+GotoweSelect+
                '&ZaladowanySelect='+ZaladowanySelect+
                '&PrzerzutySelect='+PrzerzutySelect+
                '&OdbiorySelect='+OdbiorySelect+
                '&OkresSelect='+OkresSelect+
                '&DokumentSelect='+DokumentSelect+
                '&ZadGotSelect='+ZadGotSelect,
            cache: false,
            success: function (result) {
                if (result == null){
                    alert('Brak zleceń na ten dzień !');
                }else {
                    console.log(result);
                    var json = Object.values(result);
                    var table = $('#example').DataTable({
                    destroy: true,
                    responsive: true,
                    stateSave: true,
                    dom: 'lfrtBip',
                    buttons: [
                        'excel', 'pdf', 'print'
                    ],
                    "searching": false,
                    "data": result,
                    "columns": [
                        {"data": "ID", fnCreatedCell: function (nTd, sData, oData, iRow, iCol) {
                            var href;
                            if (oData.CZYPRZERZUTY == 'T'){
                                href = '/formularze/transport/przerzuty/edycja.php?ID=';
                            }else if (oData.CZYODBIORY == 'T'){
                                href = '/formularze/transport/odbiory/edycja.php?ID=';
                            }else{
                                href = '/formularze/transport/prosty/edycja.php?ID=';
                            }
                            $(nTd).html("<a href='"+ href + oData.ID + "'>" + oData.ID + "</a> " +
                            "- <a onclick='return confirm(\"Czy napewno chcesz usunąć ?\")' href='/formularze/transport/wyswietl/php/usun.php?ID=" + oData.ID + "&ID_TASK=" + oData.IDTASK + "'>" +
                            "<span style='font-size: 12px;'>USUŃ</span></a>");
                            }},
                        {"data": "FIRMA"},
                        {"data": "MIEJSCOWOSC"},
                        {"data": "MAGAZYNWYDAJACY"},
                        {"data": "MAGAZYNPRZYJMUJACY"},
                        {"data": "KIEROWCA"},
                        {"data": "ILOSCMIEJSCPALETOWYCH"},
                        {"data": "ILOSCWZ"},
                        {"data": "UWAGI"},
                        {"data": "DATA"},
                        {"data": "CZYGOTOWE", fnCreatedCell: function (nTd, sData, oData, iRow, iCol) {
                            var checkGotowe;
                            if (oData.CZYGOTOWE == 'T')
                                checkGotowe = 'checked';
                            else
                                checkGotowe = '';
                            $(nTd).html("<input type='checkbox'" + checkGotowe + " id='GotoweCheck_" + oData.ID + "' onclick='CzyGotowe(" + oData.ID + ")' > ");
                            }},
                        {"data": "ZALADOWANY", fnCreatedCell: function (nTd, sData, oData, iRow, iCol) {
                            var checkZaladowane;
                            if (oData.ZALADOWANY == 'T')
                                checkZaladowane = 'checked';
                            else
                                checkZaladowane = '';
                            $(nTd).html("<input type='checkbox'" + checkZaladowane + " id='ZaladowaneCheck_" + oData.ID + "' onclick='CzyZaladowane(" + oData.ID + ")' >");
                            }},

                        {"data": "DOKUMENT", fnCreatedCell: function (nTd, sData, oData, iRow, iCol) {
                            var checkDokument;
                            if (oData.DOKUMENT == 'T')
                                checkDokument = 'checked';
                            else
                                checkDokument = '';
                            $(nTd).html("<input type='checkbox'" + checkDokument + " id='DokumentCheck_" + oData.ID + "' onclick='CzyDokument(" + oData.ID + ")' >");
                            }},
                        {"data": "EKSPORT", fnCreatedCell: function (nTd, sData, oData, iRow, iCol) {
                            var checkEKSPORT;
                            if (oData.EKSPORT == 'T')
                                checkEKSPORT = 'checked';
                            else
                                checkEKSPORT = '';
                            $(nTd).html("<input type='checkbox'" + checkEKSPORT + " id='EksportCheck_" + oData.ID + "' onclick='CzyEksport(" + oData.ID + ")' >");
                            }},
                        {"data": "CZYPRZERZUTY"},
                        {"data": "CZYODBIORY"},
                        {"data": "OKRES"},
                        {"data": "ZADGOT"}

                    ]   

                    });


                $('.toggle-vis').on( 'click', function (e) {
                    // Get the column API object
                    var column = table.column( $(this).attr('data-column'));

                    // Toggle the visibility
                    column.visible( ! column.visible() );
                } );


            }

        }

1 Ответ

0 голосов
/ 18 октября 2019

Я знаю, почему это было сделано так. Я не установил флажок.

решение:

if($("#firma").is(":visible"))
    var firma = document.getElementById("firma").value;
...