Здравствуйте использую библиотеку https://datatables.net/\ на скрине вот что у меня сейчас, но поиск по столбцам не работают, подскажите как в данной библиотеке реализовать поиск по отдельным столбцам?
Это jquey библиотека. То есть вам сначала надо получить данные из бд, а потом уже впихнуть этой библиотекой в таблицу. Эта библиотека уже будет работать с теми данными что есть. И если вы все правильно сделали, все должно работать. Если что то не пашет F12 и смотреть в консоли.
вот так сделал Код (Javascript): $(document).ready(function() { // Setup - add a text input to each footer cell $('#science tfoot tr').clone(true).appendTo( '#science thead' ); $('#science thead tr:eq(1) th').each( function (i) { let title = $(this).text(); $(this).html( '<input type="text" placeholder="Поиск по '+title+'" />' ); $( 'input', this ).on( 'keyup change', function () { if ( dataTable.column(i).search() !== this.value ) { dataTable .column(i) .search( this.value ) .draw(); } } ); } ); let dataTable = $('#science').DataTable({ ..//code } в php данные впихнул.. для поиска по всем столбцам работает, обращаюсь к общему поиску таким образом PHP: if(isset($_POST["search"]["value"])) { $query .= ' WHERE столбец в таблице LIKE "%'.$_POST["search"]["value"].'%" OR столбец в таблице LIKE "%'.$_POST["search"]["value"].'%" OR столбец в таблице LIKE "%'.$_POST["search"]["value"].'%" OR столбец в таблице LIKE "%'.$_POST["search"]["value"].'%" OR столбец в таблице LIKE "%'.$_POST["search"]["value"].'%" OR столбец в таблице LIKE "%'.$_POST["search"]["value"].'%" '; } но как сделать по колонком не понимаю, сделал сортировку так PHP: if(isset($_POST["order"])) { $query .= 'ORDER BY '.$columns[$_POST['order']['0']['column']].' '.$_POST['order']['0']['dir'].''; } else { $query .= 'ORDER BY id ASC'; } тоже работает, а вот как сделать поиск по таблицам отдельным... не доходит,... в концоле ошибок нет, так как не знаю, как привязать input поиск по столбцам, к запросу Post, как это сделать? вот мой input, он один, но выводит 14 input'ов, думал прописать 14 input и добавить каждому name и по name обращаться к POST, но так не работает let title = $(this).text(); $(this).html( '<input type="text" placeholder="Поиск по '+title+'" />' );
По таблицам или все же по столбцам? https://datatables.net/examples/api/multi_filter.html Также есть такое: https://datatables.net/examples/api/multi_filter_select.html
я извиняюсь, поиск по отдельным столбцам нужен, находил данную информацию по вышеуказанным ссылкам, но не работает и ошибок нету вот мой jquery Код (Javascript): $(document).ready(function() { // Setup - add a text input to each footer cell $('#science tfoot tr').clone(true).appendTo( '#science thead' ); $('#science thead tr:eq(1) th').each( function (i) { let title = $(this).text(); $(this).html( '<input type="text" placeholder="Поиск по '+title+'" />' ); $( 'input', this ).on( 'keyup change', function () { if ( dataTable.column(i).search() !== this.value ) { dataTable .column(i) .search( this.value ) .draw(); } } ); } ); let dataTable = $('#science').DataTable({ ..//code }
Я проверил. Все работает. Фильтрацию по нескольким столбцам нужно делать при помощи AND --- Добавлено --- P.S. При пустых искомых значениях для конкретных столбцов лучше вообще не добавлять соотв. условия в запрос.
на чистом html работает, с php не получается реализовать, не пойму как привязать POST запрос, так как 1 input выводится на 14 столбцов --- Добавлено --- сможете пример показать кода? как реализовано с php
Код (Javascript): $(document).ready(function() { // Setup - add a text input to each footer cell $("#example tfoot th").each( function () { var title = $(this).text(); $(this).html( '<input type="text" placeholder="Search '+title+'" />' ); } ); // DataTable var table = $("#example").DataTable( { "processing": true, "serverSide": true, "ajax": { "url": "/post", "type": "POST" }, "columns": [ { "data": "id" }, { "data": "name" }, { "data": "content" } ] } ); // Apply the search table.columns().every( function () { var that = this; $( "input", this.footer() ).on( "keyup change clear", function () { if ( that.search() !== this.value ) { that .search( this.value ) .draw(); } } ); } ); } ); И см., какие запросы при этом идут с клиента Там данные по каждому столбцу передаются в POST-параметре columns. --- Добавлено --- https://datatables.net/manual/server-side https://datatables.net/examples/server_side/