Как использовать YADCF для выбора параметров фильтра с массивом ответов - PullRequest
0 голосов
/ 11 апреля 2019

Вот JSFiddle: https://jsfiddle.net/5sgc03my/. У меня есть DataTable с парой фильтров YADCF:

var oTable = $('#example').DataTable({
    "serverSide": true,
    "ajax": {"url": "/platform/activities/?format=datatables",
         "dataSrc": function(json){
           yadcf_data_1 = json.options.activity_type
           console.log(yadcf_data_1)
           return json.data;
          }
        },
});
console.log(yadcf_data_1)

yadcf.init(oTable,
      [
        {
          column_number : 0,
          filter_type: "range_date",
        },
        {
          column_number : 1,
          filter_type: "select",
          select_type: "select2",
        },

/platform/activities/?format=datatables возвращает этот ответ:

{"recordsTotal":23286,"recordsFiltered":23286,
"data":[{"id":104,"activity_type":"Option 1",}],
"draw":1,
"options":{"activity_type":[{"label":"Option 1","value":1},
                            {"label":"Option 2","value":2},]}}

В настоящее время фильтр для столбца activity_type (столбец 1) возвращает только Option 1, поскольку это все, что доступно в таблице. Поэтому я хочу указать фильтр на массив activity_type в части options ответа Ajax. Я знаю, что есть опция data, которая может быть установлена ​​для каждого фильтра, но я не уверен, как указать его на массив ключ: значение. Когда я помещаю console.log(yadcf_data_2); вне конструкции DataTable, она просто печатает undefined. Это печатается до вызова консоли в функции ajax.

Как бы я связал YADCF с массивом activity_type?

1 Ответ

0 голосов
/ 16 апреля 2019

Взгляните на страницу сервера витрины yadcf , вы должны отправить yadcf_data_0 / yadcf_data_1 вместе с recordsTotal / data

Вы также можете отладить Событие xhr внутри кода yadcf, чтобы увидеть, что происходит

// Если вы хотите заполнить ваши фильтры select / auto_complete значениями

// вам нужнодобавить к вашему текущему JSON следующие атрибуты yadcf_data_0 / yadcf_data_1 / etc '

// где каждый атрибут содержит список строк

// Например:

// "yadcf_data_0 ": [" KHTML "," Webkit "," Trident "," Разное "," Другие браузеры "," Tasman "," Presto "," Gecko "],

//" yadcf_data_1 ":[«Браузер Nintendo DS»,

...