2015-11-13 1 views
3

В настоящее время я использую плагин datatables для jQuery https://datatables.net/ с плагином daterange, который находится здесь http://www.daterangepicker.com/.Datatable - Фильтрация по дате - Не верны правильные результаты

Я почти заставлял их работать вместе, но в настоящее время застрял в этих двух проблемах.

1) когда я выбираю свой диапазон дат, он фильтрует, но dosent дает правильные результаты.

2) Когда я очищаю результаты диапазона дат, он не удаляет фильтр.

Я сделал JSfiddle, который очень напоминает то, что я получил в данный момент. Фильтры диапазона даты - это вход в левом верхнем углу. http://jsfiddle.net/evcfespn/18/

Любая помощь будет оценена на этом этапе. код Javascript:

//Start of the data table 
$(document).ready(function() { 
    var table = $('#example').DataTable({ 
    "dom": '<"toolbar">frtip' 
    }); 
$("div.toolbar").html('<input id="date_range" type="text">'); 
//END of the data table 

// Date range script - Start of the sscript 
$("#date_range").daterangepicker({ 
    autoUpdateInput: false, 
    locale: { 
     "cancelLabel": "Clear", 
     } 
}); 

$("#date_range").on('apply.daterangepicker', function(ev, picker) { 
     $(this).val(picker.startDate.format('YYYY-MM-DD') + ' to ' + picker.endDate.format('YYYY-MM-DD')); 
     table.draw(); 
}); 

$("#date_range").on('cancel.daterangepicker', function(ev, picker) { 
     $(this).val(''); 
     table.draw(); 
}); 
// Date range script - END of the script 

$.fn.dataTableExt.afnFiltering.push(
function(oSettings, aData, iDataIndex) { 

    var grab_daterange = $("#date_range").val(); 
    var give_results_daterange = grab_daterange.split(" to "); 
    var filterstart = give_results_daterange[0]; 
    var filterend = give_results_daterange[1]; 
    var iStartDateCol = 5; //using column 2 in this instance 
    var iEndDateCol = 5; 
    var tabledatestart = aData[iStartDateCol]; 
    var tabledateend= aData[iEndDateCol]; 

    if (filterstart === "" && filterend === "") 
    { 
     return true; 
    } 
    else if ((moment(filterstart).isSame(tabledatestart) || moment(filterstart).isBefore(tabledatestart)) && filterend === "") 
    { 
     return true; 
    } 
    else if ((moment(filterstart).isSame(tabledatestart) || moment(filterstart).isAfter(tabledatestart)) && filterstart === "") 
    { 
     return true; 
    } 
    else if ((moment(filterstart).isSame(tabledatestart) || moment(filterstart).isBefore(tabledatestart)) && (moment(filterend).isSame(tabledateend) || moment(filterend).isAfter(tabledateend))) 
    { 
     return true; 
    } 
    return false; 
} 
); 

//End of the datable 
}); 

HTML таблицы:

<table id="example" class="display" cellspacing="0" width="100%"> 
    <thead> 
     <tr> 
      <th>Name</th> 
      <th>Position</th> 
      <th>Office</th> 
      <th>Age</th> 
      <th>Start date</th> 
      <th>Salary</th> 
     </tr> 
    </thead> 
    <tfoot> 
     <tr> 
      <th>Name</th> 
      <th>Position</th> 
      <th>Office</th> 
      <th>Age</th> 
      <th>Start date</th> 
      <th>Salary</th> 
     </tr> 
    </tfoot> 
    <tbody> 
     <tr> 
      <td>Tiger Nixon</td> 
      <td>System Architect</td> 
      <td>Edinburgh</td> 
      <td>61</td> 
      <td>2015-10-01</td> 
      <td>$320,800</td> 
     </tr> 
     <tr> 
      <td>Garrett Winters</td> 
      <td>Accountant</td> 
      <td>Tokyo</td> 
      <td>63</td> 
      <td>2015-10-03</td> 
      <td>$170,750</td> 
     </tr> 
     <tr> 
      <td>Ashton Cox</td> 
      <td>Junior Technical Author</td> 
      <td>San Francisco</td> 
      <td>66</td> 
      <td>2015-10-03</td> 
      <td>$86,000</td> 
     </tr> 
     <tr> 
      <td>Cedric Kelly</td> 
      <td>Senior Javascript Developer</td> 
      <td>Edinburgh</td> 
      <td>22</td> 
      <td>2015-10-05</td> 
      <td>$433,060</td> 
     </tr> 
     <tr> 
      <td>Airi Satou</td> 
      <td></td> 
      <td>Tokyo</td> 
      <td></td> 
      <td>2015-10-05</td> 
      <td></td> 
     </tr> 
     <tr> 
      <td>Brielle Williamson</td> 
      <td>Integration Specialist</td> 
      <td>New York</td> 
      <td>61</td> 
      <td>2015-10-05</td> 
      <td>$372,000</td> 
     </tr> 
     <tr> 
      <td>Herrod Chandler</td> 
      <td>Sales Assistant</td> 
      <td>San Francisco</td> 
      <td>59</td> 
      <td>2015-10-05</td> 
      <td>$137,500</td> 
     </tr> 
     <tr> 
      <td>Rhona Davidson</td> 
      <td>Integration Specialist</td> 
      <td>Tokyo</td> 
      <td>55</td> 
      <td>2015-10-07</td> 
      <td>$327,900</td> 
     </tr> 
     <tr> 
      <td>Colleen Hurst</td> 
      <td>Javascript Developer</td> 
      <td>San Francisco</td> 
      <td>39</td> 
      <td>2015-10-08</td> 
      <td>$205,500</td> 
     </tr> 
     <tr> 
      <td>Sonya Frost</td> 
      <td>Software Engineer</td> 
      <td>Edinburgh</td> 
      <td>23</td> 
      <td>2015-10-13</td> 
      <td>$103,600</td> 
     </tr> 
     <tr> 
      <td>Jena Gaines</td> 
      <td>Office Manager</td> 
      <td>London</td> 
      <td>30</td> 
      <td>2015-10-13</td> 
      <td>$90,560</td> 
     </tr> 
     <tr> 
      <td>Quinn Flynn</td> 
      <td>Support Lead</td> 
      <td>Edinburgh</td> 
      <td>22</td> 
      <td>2015-10-15</td> 
      <td>$342,000</td> 
     </tr> 
     <tr> 
      <td>Charde Marshall</td> 
      <td>Regional Director</td> 
      <td>San Francisco</td> 
      <td>36</td> 
      <td>2015-10-16</td> 
      <td>$470,600</td> 
     </tr> 
     <tr> 
      <td>Haley Kennedy</td> 
      <td>Senior Marketing Designer</td> 
      <td>London</td> 
      <td>43</td> 
      <td>2015-10-17</td> 
      <td>$313,500</td> 
     </tr> 
     <tr> 
      <td>Tatyana Fitzpatrick</td> 
      <td>Regional Director</td> 
      <td>London</td> 
      <td>19</td> 
      <td>2015-01-18</td> 
      <td>$385,750</td> 
     </tr> 
     <tr> 
      <td>Michael Silva</td> 
      <td>Marketing Designer</td> 
      <td>London</td> 
      <td>66</td> 
      <td>2015-10-19</td> 
      <td>$198,500</td> 
     </tr> 
     <tr> 
      <td>Paul Byrd</td> 
      <td>Chief Financial Officer (CFO)</td> 
      <td>New York</td> 
      <td>64</td> 
      <td>2015-10-20</td> 
      <td>$725,000</td> 
     </tr> 
     <tr> 
      <td>Gloria Little</td> 
      <td>Systems Administrator</td> 
      <td>New York</td> 
      <td>59</td> 
      <td>2015-10-25</td> 
      <td>$237,500</td> 
     </tr> 
     <tr> 
      <td>Bradley Greer</td> 
      <td>Software Engineer</td> 
      <td>London</td> 
      <td>41</td> 
      <td>2015-11-26</td> 
      <td>$132,000</td> 
     </tr> 
     <tr> 
      <td>Dai Rios</td> 
      <td>Personnel Lead</td> 
      <td>Edinburgh</td> 
      <td>35</td> 
      <td>2015-10-26</td> 
      <td>$217,500</td> 
     </tr> 
     <tr> 
      <td>Jenette Caldwell</td> 
      <td>Development Lead</td> 
      <td>New York</td> 
      <td>30</td> 
      <td>2015-10-27</td> 
      <td>$345,000</td> 
     </tr> 
     <tr> 
      <td>Yuri Berry</td> 
      <td>Chief Marketing Officer (CMO)</td> 
      <td>New York</td> 
      <td>40</td> 
      <td>2015-10-28</td> 
      <td>$675,000</td> 
     </tr> 
     <tr> 
      <td>Caesar Vance</td> 
      <td>Pre-Sales Support</td> 
      <td>New York</td> 
      <td>21</td> 
      <td>2015-10-28</td> 
      <td>$106,450</td> 
     </tr> 
     <tr> 
      <td>Doris Wilder</td> 
      <td>Sales Assistant</td> 
      <td>Sidney</td> 
      <td>23</td> 
      <td>2015-10-29</td> 
      <td>$85,600</td> 
     </tr> 
     <tr> 
      <td>Angelica Ramos</td> 
      <td>Chief Executive Officer (CEO)</td> 
      <td>London</td> 
      <td>47</td> 
      <td>2015-10-29</td> 
      <td>$1,200,000</td> 
     </tr> 
     <tr> 
      <td>Gavin Joyce</td> 
      <td>Developer</td> 
      <td>Edinburgh</td> 
      <td>42</td> 
      <td>2015-10-29</td> 
      <td>$92,575</td> 
     </tr> 
     <tr> 
      <td>Jennifer Chang</td> 
      <td>Regional Director</td> 
      <td>Singapore</td> 
      <td>28</td> 
      <td>2015-10-29</td> 
      <td>$357,650</td> 
     </tr> 
     <tr> 
      <td>Brenden Wagner</td> 
      <td>Software Engineer</td> 
      <td>San Francisco</td> 
      <td>28</td> 
      <td>2015-11-01</td> 
      <td>$206,850</td> 
     </tr> 
     <tr> 
      <td>Fiona Green</td> 
      <td>Chief Operating Officer (COO)</td> 
      <td>San Francisco</td> 
      <td>48</td> 
      <td>2015-11-01</td> 
      <td>$850,000</td> 
     </tr> 
     <tr> 
      <td>Shou Itou</td> 
      <td>Regional Marketing</td> 
      <td>Tokyo</td> 
      <td>20</td> 
      <td>2015-11-03</td> 
      <td>$163,000</td> 
     </tr> 
     <tr> 
      <td>Michelle House</td> 
      <td>Integration Specialist</td> 
      <td>Sidney</td> 
      <td>37</td> 
      <td>2015-11-04</td> 
      <td>$95,400</td> 
     </tr> 
     <tr> 
      <td>Suki Burks</td> 
      <td>Developer</td> 
      <td>London</td> 
      <td>53</td> 
      <td>2015-11-06</td> 
      <td>$114,500</td> 
     </tr> 
     <tr> 
      <td>Prescott Bartlett</td> 
      <td>Technical Author</td> 
      <td>London</td> 
      <td>27</td> 
      <td>2015-11-07</td> 
      <td>$145,000</td> 
     </tr> 
     <tr> 
      <td>Gavin Cortez</td> 
      <td>Team Leader</td> 
      <td>San Francisco</td> 
      <td>22</td> 
      <td>2015-11-07</td> 
      <td>$235,500</td> 
     </tr> 
     <tr> 
      <td>Martena Mccray</td> 
      <td>Post-Sales support</td> 
      <td>Edinburgh</td> 
      <td>46</td> 
      <td>2015-11-07</td> 
      <td>$324,050</td> 
     </tr> 
     <tr> 
      <td>Unity Butler</td> 
      <td>Marketing Designer</td> 
      <td>San Francisco</td> 
      <td>47</td> 
      <td>2015-11-08</td> 
      <td>$85,675</td> 
     </tr> 
     <tr> 
      <td>Howard Hatfield</td> 
      <td>Office Manager</td> 
      <td>San Francisco</td> 
      <td>51</td> 
      <td>2015-11-08</td> 
      <td>$164,500</td> 
     </tr> 
     <tr> 
      <td>Hope Fuentes</td> 
      <td>Secretary</td> 
      <td>San Francisco</td> 
      <td>41</td> 
      <td>2015-11-09</td> 
      <td>$109,850</td> 
     </tr> 
     <tr> 
      <td>Vivian Harrell</td> 
      <td>Financial Controller</td> 
      <td>San Francisco</td> 
      <td>62</td> 
      <td>2015-11-09</td> 
      <td>$452,500</td> 
     </tr> 
     <tr> 
      <td>Timothy Mooney</td> 
      <td>Office Manager</td> 
      <td>London</td> 
      <td>37</td> 
      <td>2015-11-10</td> 
      <td>$136,200</td> 
     </tr> 
     <tr> 
      <td>Jackson Bradshaw</td> 
      <td>Director</td> 
      <td>New York</td> 
      <td>65</td> 
      <td>2015-11-10</td> 
      <td>$645,750</td> 
     </tr> 
     <tr> 
      <td>Olivia Liang</td> 
      <td>Support Engineer</td> 
      <td>Singapore</td> 
      <td>64</td> 
      <td>2015-11-11</td> 
      <td>$234,500</td> 
     </tr> 
     <tr> 
      <td>Bruno Nash</td> 
      <td>Software Engineer</td> 
      <td>London</td> 
      <td>38</td> 
      <td>2015-11-11</td> 
      <td>$163,500</td> 
     </tr> 
     <tr> 
      <td>Sakura Yamamoto</td> 
      <td>Support Engineer</td> 
      <td>Tokyo</td> 
      <td>37</td> 
      <td>2015-11-12</td> 
      <td>$139,575</td> 
     </tr> 
     <tr> 
      <td>Thor Walton</td> 
      <td>Developer</td> 
      <td>New York</td> 
      <td>61</td> 
      <td>2015-11-13</td> 
      <td>$98,540</td> 
     </tr> 
     <tr> 
      <td>Finn Camacho</td> 
      <td>Support Engineer</td> 
      <td>San Francisco</td> 
      <td>47</td> 
      <td>2015-11-13</td> 
      <td>$87,500</td> 
     </tr> 
     <tr> 
      <td>Serge Baldwin</td> 
      <td>Data Coordinator</td> 
      <td>Singapore</td> 
      <td>64</td> 
      <td>2015-11-13</td> 
      <td>$138,575</td> 
     </tr> 
     <tr> 
      <td>Zenaida Frank</td> 
      <td>Software Engineer</td> 
      <td>New York</td> 
      <td>63</td> 
      <td>2015-11-13</td> 
      <td>$125,250</td> 
     </tr> 
     <tr> 
      <td>Zorita Serrano</td> 
      <td>Software Engineer</td> 
      <td>San Francisco</td> 
      <td>56</td> 
      <td>2015-11-13</td> 
      <td>$115,000</td> 
     </tr> 
     <tr> 
      <td>Jennifer Acosta</td> 
      <td>Junior Javascript Developer</td> 
      <td>Edinburgh</td> 
      <td>43</td> 
      <td>2013/02/01</td> 
      <td>$75,650</td> 
     </tr> 
     <tr> 
      <td>Cara Stevens</td> 
      <td>Sales Assistant</td> 
      <td>New York</td> 
      <td>46</td> 
      <td>2015-11-13</td> 
      <td>$145,600</td> 
     </tr> 
     <tr> 
      <td>Hermione Butler</td> 
      <td>Regional Director</td> 
      <td>London</td> 
      <td>47</td> 
      <td>2015-11-13</td> 
      <td>$356,250</td> 
     </tr> 
     <tr> 
      <td>Lael Greer</td> 
      <td>Systems Administrator</td> 
      <td>London</td> 
      <td>21</td> 
      <td>2009/02/27</td> 
      <td>$103,500</td> 
     </tr> 
     <tr> 
      <td>Jonas Alexander</td> 
      <td>Developer</td> 
      <td>San Francisco</td> 
      <td>30</td> 
      <td>2015-11-13</td> 
      <td>$86,500</td> 
     </tr> 
     <tr> 
      <td>Shad Decker</td> 
      <td>Regional Director</td> 
      <td>Edinburgh</td> 
      <td>51</td> 
      <td>2015-11-13</td> 
      <td>$183,000</td> 
     </tr> 
     <tr> 
      <td>Michael Bruce</td> 
      <td>Javascript Developer</td> 
      <td>Singapore</td> 
      <td>29</td> 
      <td>2015-11-13</td> 
      <td>$183,000</td> 
     </tr> 
     <tr> 
      <td>Donna Snider</td> 
      <td>Customer Support</td> 
      <td>New York</td> 
      <td>27</td> 
      <td>2015-11-13</td> 
      <td>$112,000</td> 
     </tr> 
    </tbody> 
</table> 

ответ

5

Изменение переменной индекса 4 вместо 5.

var iStartDateCol = 4; 
var iEndDateCol = 4; 

Массив 0 на основе, так что если вы хотите столбец 5 , вам нужен индекс 4.

Кроме того, чтобы очистить, вам необходимо сменить первую проверку фильтра:

if (!filterstart && !filterend) 
{ 
    return true; 
} 

С:

var give_results_daterange = grab_daterange.split(" to "); 
var filterstart = give_results_daterange[0]; 
var filterend = give_results_daterange[1]; 

Вызовет filterend неопределен. Heres обновленный скрипку:

http://jsfiddle.net/evcfespn/26/

+1

Awesome, я просто понял, вопрос колонки несколько минут назад, но пытается чесать голову о кнопке прозрачного фильтра, Большое вам спасибо за помощь, его все работая намного лучше с вашим jsfiddle. –

+0

Что-то не работает для меня –

Смежные вопросы