таблицы данных с двумя диапазонами дат, фильтрующиеся в двух столбцах

У меня есть таблица с двумя столбцами даты, я могу использовать диапазон дат в одном столбце, который является aData [3], как это

$.fn.dataTableExt.afnFiltering.push(
function(oSettings, aData, iDataIndex){
var dateStart = parseDateValue($("#fromDate").val());
var dateEnd = parseDateValue($("#toDate").val());
var evalDate= parseDateValue(aData[3]);
if ( evalDate >= dateStart && evalDate <= dateEnd) {
return true;
}
else {
return false;
}

});

function parseDateValue(rawDate) {
var dateArray= rawDate.split("-");
var parsedDate= dateArray[2] + dateArray[1] + dateArray[0];
return parsedDate;
}

var table = $('#data').DataTable({
"lengthMenu": [[25, 50, -1], [25, 50, "All"]],
"order": [[ 0, "desc" ]],
"paging" : true,
"scrollX": true,
dom: 'Bfrtip',
buttons: [
'excel', 'print'
]
});

$("#fromDate").keyup ( function() { table.draw(); } );
$("#fromDate").change( function() { table.draw(); } );
$("#toDate").keyup ( function() { table.draw(); } );
$("#toDate").change( function() { table.draw(); } );

Теперь я хочу добавить еще один столбец дат, который будет aData [5], и я хочу добавить еще один фильтр диапазона дат. Как я могу отфильтровать таблицу с помощью двух фильтров диапазона данных, используя другие средства выбора дат # fromDate2 и # toDate2 для поиска в aData [5]?

0

Решение

Я создал переключатели, чтобы выбрать столбец для фильтрации

<td><input type="radio" name="filterdate" value="birth_date"> birth date </td>
<td><input type="radio" name="filterdate" value="register_date"> register date </td>

$("input[name=filterdate]").change(function () {
var d = $("input[name=filterdate]:checked").val();

if(d == 'birth_date'){
$.fn.dataTableExt.afnFiltering.push(
function(oSettings, aData, iDataIndex){
var dateStart = parseDateValue($("#Bdate_From").val());
var dateEnd = parseDateValue($("#Bdate_To").val());
var evalDate= parseDateValue(aData[3]);
if ( evalDate >= dateStart && evalDate <= dateEnd) {
return true;
}
else {
return false;
}
}
);
}
else{
$.fn.dataTableExt.afnFiltering.push(
function(oSettings, aData, iDataIndex){
var dateStart = parseDateValue($("#regdate_From").val());
var dateEnd = parseDateValue($("#regdate_To").val());
var evalDate= parseDateValue(aData[8]);
if ( evalDate >= dateStart && evalDate <= dateEnd) {
return true;
}
else {
return false;
}
}
);
}
});

function parseDateValue(rawDate) {
var dateArray= rawDate.split("-");
var parsedDate= dateArray[2] + dateArray[1] + dateArray[0];
return parsedDate;
}

var table = $('#data').DataTable({
"lengthMenu": [[25, 50, -1], [25, 50, "All"]],
"order": [[ 0, "desc" ]],
"paging" : true,
"scrollX": true,
dom: 'Bfrtip',
buttons: [
'excel', 'print'
],
responsive: true
});
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector