DataTable Filters
//HTML
<select class="payment_filter" id="payment_filter">
<option selected>Payment status</option>
<option value="1">Paid to Company</option>
<option value="2">Paid to Client</option>
<option value="3">Job Done</option>
<option value="4">All</option>
</select>
<table id="datatable1">
your table here.....
</table>
//JS
jQuery(document).ready(function() {
jQuery('#datatable1').DataTable({
"pageLength": 20,
//"bPaginate": false,
"bLengthChange": false,
"bFilter": true,
"bInfo": false,
"bAutoWidth": false,
'responsive': true,
"columnDefs" : [{"targets":3, "type":"date-eu"}],
"aaSorting": []
});
var table = jQuery('#datatable1').DataTable();
jQuery('#payment_filter').on('change', function (e) {
var optionSelected = jQuery("option:selected", this);
var valueSelected = this.value;
if(valueSelected == 1){
jQuery.fn.dataTable.ext.search.push(
function (settings, data, dataIndex){
return (data[6] == 'paid') ? true : false;
}
);
table.draw();
jQuery.fn.dataTable.ext.search.pop();
}else if(valueSelected == 2){
jQuery.fn.dataTable.ext.search.push(
function (settings, data, dataIndex){
return (data[7] == 'paid') ? true : false;
}
);
table.draw();
jQuery.fn.dataTable.ext.search.pop();
}
else if(valueSelected == 3){
jQuery.fn.dataTable.ext.search.push(
function (settings, data, dataIndex){
return (data[6] == 'paid' && data[7] == 'paid') ? true : false;
}
);
table.draw();
jQuery.fn.dataTable.ext.search.pop();
}
else if(valueSelected == 4){
window.location.reload();
}
});
});
//note
data[6] this is column name make sure to count columns and minus one, like my column existed on 7th number and i added data[6]
Bored Bee