Так что мой javascript плох, но у меня есть потребность в данных, которую я не могу понять. Соответствующий код здесь:
$('#lesson-table').DataTable( {
'data': cleanData,
'paging': false,
'order': [[ 8, 'asc' ], [ 3, 'desc' ], [ 1, 'desc' ]],
initComplete: function () {
// this is where we populate the filter dropdowns
this.api().columns([0,1,2,6,7]).every( function () {
var column = this;
var select = $('<select><option value=""></option></select>')
.appendTo( $(column.header()) )
.on( 'change', function () {
var val = $.fn.dataTable.util.escapeRegex(
$(this).val()
);
column
.search( val ? '^'+val+'$' : '', true, false )
.draw();
} );
column.data().unique().sort().each( function ( d, j ) {
var val = $('<div/>').html(d).text();
select.append( '<option value="' + val + '">' + val + '</option>' );
} );
} );
}
} );
// this removes duplicate dropdown values
var usedNames = {};
$("#lesson-table select > option").each(function () {
if (usedNames[this.value]) {
$(this).remove();
} else {
usedNames[this.value] = this.text;
}
});
Таким образом, изменение, которое было сделано в моем источнике данных, состоит в том, что столбцы 1, второй столбец в наборе, теперь являются разделенным запятыми списком элементов. Большую часть времени это один пункт, который говорит: «Развлечения», но иногда это может быть «Развлечения, Спорт, Здравоохранение». В настоящий момент этот список будет отображаться как вариант в моем раскрывающемся списке, но мне нужно сделать следующее: разделить их, а затем отфильтровать по содержанию ... не точно.
Надеюсь, это имеет смысл. Могу объяснить больше, если нужно.