Тип фильтра данных на стороне сервера YADCF - PullRequest
0 голосов
/ 19 февраля 2020

Я использую фильтры столбцов yadcf для DataTables на стороне сервера. js запрос.

 yadcf.init(table, [
       {
                    column_number: 0,
                    filter_type: "text",
                    filter_default_label: "Search",
                    filter_reset_button_text: false
        },
        {
                    column_number: 1,
                    filter_type: "select",
                    filter_reset_button_text: false
        },
     ]

Запрос дает мне

columns[X][search][value]

columns[X][search][name] как это, но я хочу получить столбец yadcf атрибут столбца filter_type.

Эти данные помогают искать содержит поиск или равнозначный поиск

Как это получить? или измените сценарии.

Версия 0.9.3

1 Ответ

0 голосов
/ 19 февраля 2020

Я отправляю письмо Даниэлю Резнику (писателю yadcf)

Даниэль Резник отвечает:

Я думаю, что вы могли бы достичь этого, используя некоторые события / ловушку «pre XHR» для датированных таблиц, в которых вы можете измените запрос XHR перед его отправкой на сервер, но IMO, так как он инициализируется только один раз (когда вы пишете код JS), я думаю, вы можете сделать его «жестко закодированным» на сервере

Мой код как это

var table = $("#datalist")
            .on('preXhr.dt', function (e, settings, data) {
                var yadcf = [];
                $('.yadcf-filter').each(function (data) {
                    input = $(this)
                    var col = {
                        "type": input.attr('type'),
                        "filter_match_mode": input.attr('filter_match_mode'),
                        "column_number": input.attr('id').replace('yadcf-filter--datalist-', '')  
                    }
                    yadcf.push(col);
                });
                data.yadcf = yadcf;
            })
          .DataTable({
            "ajax": {
                "url": "/url",
                "type": "POST",
                "datatype": "json"
            },




yadcf.init(table, [

            { column_number: 1, filter_type: "text", filter_default_label: "Contains Search", filter_reset_button_text: false, filter_delay: 500, filter_match_mode:"contains"},
            { column_number: 2, filter_type: "text", filter_default_label: "Exact Search", filter_reset_button_text: false, filter_delay: 500, filter_match_mode: "exact" },
            { column_number: 3, filter_type: "text", filter_default_label: "Starts With Search", filter_reset_button_text: false, filter_delay: 500, filter_match_mode: "startsWith" },

]

...