JQuery dataTables - получить значения столбца фильтра
Я использую jQuery dataTable, и когда пользователь выбирает раскрывающийся список, он ищет таблицу данных и фильтрует ее и перерисовывает содержимое на основе найденных данных:
mtTable.columns().each(function() {
mtTable.column(22).search(searchVal, true, true).draw();
});
Теперь я пытаюсь получить все значения столбцов после выполнения поиска, однако я не могу найти функцию для этого. В настоящее время я использую api
var myTable = $("#tblResults").DataTable();
var resultsArray = myTable.columns(colIndex).data();
В соответствии с документацией это вернет все данные из нефильтрованного столбца. Я не могу найти функцию, чтобы дать мне массив значений столбцов только для фильтрованных данных.
Ответы
Ответ 1
Вы можете прочитать все о передовых таблицах selector-modifiers
здесь → http://datatables.net/reference/type/selector-modifier
Если вы хотите получить только отфильтрованные строки:
table.rows( { search:'applied' } ).data().each(function(value, index) {
console.log(value, index);
});
Чтобы настроить таргетинг на определенный столбец и получить только отфильтрованные значения (ваш конкретный запрос) - здесь все отфильтрованные значения из столбца # 2:
table.column(2, { search:'applied' } ).data().each(function(value, index) {
console.log(value, index);
});
См. демонстрацию с обоими → http://jsfiddle.net/q0e1bdcz/
Чтобы создать массив по отфильтрованным значениям для определенного столбца:
var array = [];
table.column(2, { search:'applied' } ).data().each(function(value, index) {
array.push(value);
});
console.log(array);
См. демонстрацию → http://jsfiddle.net/q0e1bdcz/1/
Ответ 2
Вы также можете получить уникальные и отсортированные данные, если у вас больше количества записей.
// Datatable object
var table = $('#example').DataTable();
// Get Unique and Sorted values.
table.column(3, { search:'applied' } ).data().unique().sort().each(function(value, index) {
console.log(value, index);
});
Ссылка: http://www.jqueryscript.net/demo/DataTables-Jquery-Table-Plugin/examples/api/multi_filter_select.html
Надеюсь, это тоже поможет.