Я использую серверный скрипт Datatables для заполнения 9 фильтров YADCF, и он работает хорошо.Что мне нужно сделать, так это использовать cumulative_filtering, но я не могу найти примеров того, как я мог бы использовать накопительную фильтрацию на стороне сервера и как может выглядеть «накопительная логика».Очевидно, что мне нужно, чтобы фильтры обновлялись / перезагружались при выборе значения из одного из них.Часть моего текущего серверного скрипта выглядит следующим образом:
$ data ['yadcf_data_6'] = $ db -> selectDistinct ("table_name", ["type as value, type as label"], null, "type") -> fetchAll ();
Мой JS выглядит следующим образом:
// YADCF filters Modal
$(document).ready(function () {
'use strict';
var oTable;
oTable = $('#table').DataTable();
yadcf.init(oTable,
[{
column_number: 6,
filter_container_id: 'searchtype',
filter_type: "select",
filter_reset_button_text: "Clear",
select_type: "chosen",
select_type_options: {
'width': '50em',
},
filter_default_label: 'Type'
},
{
column_number: 7,
filter_container_id: 'searchcategory',
filter_type: "select",
filter_reset_button_text: "Clear",
sort_as: "alpha",
select_type: "chosen",
select_type_options: {
'width': '50em',
},
filter_default_label: 'Category'
},
{
column_number: 8,
filter_container_id: 'searchmaterial',
filter_type: "select",
filter_reset_button_text: "Clear",
select_type: "chosen",
select_type_options: {
'width': '50em',
},
filter_default_label: 'Material'
},
{
column_number: 9,
filter_container_id: 'searchgrade',
filter_type: "select",
filter_reset_button_text: "Clear",
select_type: "chosen",
select_type_options: {
'width': '50em',
},
filter_default_label: 'Grade'
},
{
column_number: 10,
filter_container_id: 'searchshape',
filter_type: "select",
filter_reset_button_text: "Clear",
select_type: "chosen",
select_type_options: {
'width': '50em',
},
filter_default_label: 'Shape'
},
{
column_number: 11,
filter_container_id: 'searchcut',
filter_type: "select",
filter_reset_button_text: "Clear",
select_type: "chosen",
select_type_options: {
'width': '50em',
},
filter_default_label: 'Cut'
},
{
column_number: 12,
filter_container_id: 'searchsize',
filter_type: "text",
filter_reset_button_text: "Clear",
select_type: "chosen",
filter_match_mode: 'exact',
select_type_options: {
'width': '50em',
},
filter_default_label: 'Size'
},
{
column_number: 29,
filter_container_id: 'searchpairs',
filter_type: "select",
filter_reset_button_text: "Clear",
select_type: "chosen",
select_type_options: {
'width': '50em',
},
filter_default_label: 'Pairs'
},
{
column_number: 31,
filter_container_id: 'searchset',
filter_type: "select",
filter_reset_button_text: "Clear",
select_type: "chosen",
select_type_options: {
'width': '50em',
},
filter_default_label: 'Sets'
}
],
{
cumulative_filtering: true
}
);
});
Есть ли пример кода, на который любой может указать (яне могу найти ни одного, я нашел и использовал код на стороне клиента здесь ) или, если нет, кто-нибудь может дать мне несколько советов, с чего начать?