Добрый день. Подскажите как организовать фильтрацию по селектору колон. Получаю ошибку о том что
DataTables warning: table id=categoriesTable - Cannot reinitialise DataTable. For more information about this error, please see http://datatables.net/tn/3
https://datatables.net/release-datatables/examples/api/multi_filter_select.html
var table = $('#categoriesTable').dataTable({
ajax: '/awscms/api/classifier/items/<?php echo htmlesc($class->name); ?>/load',
serverSide: true,
autoWidth: false,
dataSrc: 'data',
language: {
url: '/aws_assets/json/dataTable.russian.json'
},
columns: [
{
data: "id"
},
{
data: "title"
},
{
data: "category_item_id"
},
{
data: "created_at"
},
{
data: "order",
render: function (data, type, row) {
return '<a href="javascript:void(0);" data-id="' + row.id + '" class="btn btn-xs btn-primary btn-position-up"><i class="fa fa-arrow-up"></i></a> ' +
'<a href="javascript:void(0);" data-id="' + row.id + '" class="btn btn-xs btn-primary btn-position-down"><i class="fa fa-arrow-down"></i></a>';
}
},
{
data: "actions",
searchable: false,
orderable: false,
render: function (data, type, row) {
return '<a href="/awscms/sections/classifier/items/<?php echo htmlesc($class->name); ?>/edit/' + row.id + '" title="Редактировать" class="btn btn-info btn-sm btn-edit"><i class="fa fa-edit"></i></a> ' +
'<a href="javascript:void(0);" title="Удалить" data-id="' + row.id + '" class="btn btn-danger btn-sm btn-remove"><i class="fa fa-trash"></i></a>' ;
}
}
]
});
public function itemsLoad($name) {
if (!Core::user()->current()->can('classifier.item.view')) {
echo json_encode([
'code' => static::ERR_ACCESS_DENIED,
'message' => 'Отказано в доступе.'
]);
die;
}
$class = \Aws2Model\Classifier::where('name', $name)->first();
if (!$class) {
return [
'code' => 1,
'message' => 'Класс материала не найден.'
];
}
$db = Core::db();
$b = $db->table('classifier_items');
$b->select(['id', 'title', 'order', 'created_at','category_item_id'])->where('classifier_id', $class->id)->orderBy('order', 'asc');
$out = Core::db()->dataTable($b, ['id', 'title', 'order', 'created_at','category_item_id'], ['id', 'title'], ['id', 'title']);
return $out;
}
вот собственно скрипт который должен добавлять колонку, может что то добавить нужно, уже хз че делать
$(document).ready(function() {
$('#categoriesTable').DataTable( {
initComplete: function () {
this.api().columns().every( function () {
var column = this;
var select = $('<select><option value=""></option></select>')
.appendTo( $(column.footer()).empty() )
.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 ) {
select.append( '<option value="'+d+'">'+d+'</option>' )
} );
} );
}
} );
} );
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники