2016-12-10 8 views
0

でのフィルタリング私はADATAで1列に日付範囲を使用することができる2つの日付列を持つテーブルを持っている[3]こののDataTable 2つの日付の範囲が2列

$.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]になり、別の日付範囲フィルタを追加したいと思います。 aData [5]で#fromDate2と#toDate2を検索する他の日付ピッカーを使用して、2つのデータ範囲フィルタでテーブルをフィルタリングするにはどうすればよいですか?

+0

をフィルタリングするためにどの列を選択するラジオボタンを作成データ。 – annoyingmouse

答えて

0

私は前にこのような何かをやったが、私は確認することができるように、私はJSFiddleに対して、これまで、それほど多くの幸せの作業になると思い

<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 
}); 
関連する問題