It would be great if someone help me on the issue.
I am just trying to get the filtered result set from the Datatable.
Below is my code.
var filtered_row_data = $('#example').DataTable().column(1).search('186').data().unique().sort();
console.log(JSON.stringify(filtered_row_data));
It just returns all the rows instead of filtered values.
I am using latest stable version of Datatable.
Can anyone please help on this?
see dataTables selector-modifiers. You are looking for {filter : 'applied'}
:
table.on('search.dt', function() {
//number of filtered rows
console.log(table.rows( { filter : 'applied'} ).nodes().length);
//filtered rows data as arrays
console.log(table.rows( { filter : 'applied'} ).data());
})
demo -> http://jsfiddle.net/h4wrmfx3/
if you are using server side filtering / searching, this is the only solution i found and it works: xhr event
$('#yourTable').on('xhr.dt', function ( e, settings, json, xhr ) {
//the new data is here json.data
console.log(json.data);
});