Mam parę filtrów (dwa na filtrowanie przez checkboxy i dwa przez textboxy), chcę żeby mi działało w ten sposób, że gdy przefiltruje tabelę przez 1 filtr i użyję następnego, to żeby mi przefiltrowało tylko to co aktualnie wyświetla, a nie całą tabelę.

[JAVASCRIPT] pobierz, plaintext
  1. function filtr_start()
  2. {
  3. var New = document.getElementById("New");
  4. var Accepted = document.getElementById("Accepted");
  5. var Completed = document.getElementById("Completed");
  6. var In_realization = document.getElementById("In_realization");
  7. var Realized = document.getElementById("Realized");
  8. var Sended = document.getElementById("Sended");
  9. var Finished = document.getElementById("Finished");
  10. var Paused = document.getElementById("Paused");
  11. var Canceled = document.getElementById("Canceled");
  12.  
  13. table = document.getElementById("sortable").rows;
  14. var table_length = table.length;
  15.  
  16. if(New.checked || Accepted.checked || Completed.checked || In_realization.checked || Realized.checked || Sended.checked ||
  17. Finished.checked || Paused.checked || Canceled.checked)
  18. {
  19. for(var i = 2; i < table_length; i++)
  20. {
  21. if((table[i].cells[4].innerHTML == New.value && New.checked) ||
  22. (table[i].cells[4].innerHTML == Accepted.value && Accepted.checked) ||
  23. (table[i].cells[4].innerHTML == Completed.value && Completed.checked) ||
  24. (table[i].cells[4].innerHTML == In_realization.value && In_realization.checked) ||
  25. (table[i].cells[4].innerHTML == Realized.value && Realized.checked) ||
  26. (table[i].cells[4].innerHTML == Sended.value && Sended.checked) ||
  27. (table[i].cells[4].innerHTML == Finished.value && Finished.checked) ||
  28. (table[i].cells[4].innerHTML == Paused.value && Paused.checked) ||
  29. (table[i].cells[4].innerHTML == Canceled.value && Canceled.checked))
  30. {
  31. table[i].style.display = "";
  32. }
  33. else
  34. {
  35. table[i].style.display = "none";
  36. }
  37. }
  38. }
  39. else
  40. {
  41. for(var i = 2; i < table_length; i++)
  42. {
  43. table[i].style.display = "";
  44. }
  45. }
  46. }
  47.  
  48. function filtr_start2()
  49. {
  50. var Yes = document.getElementById("Yes");
  51. var No = document.getElementById("No");
  52.  
  53. table = document.getElementById("sortable").rows;
  54. var table_length = table.length;
  55.  
  56. if(Yes.checked || No.checked)
  57. {
  58. for(var j = 2; j < table_length; j++)
  59. {
  60. if((table[j].cells[3].innerHTML == Yes.value && Yes.checked) ||
  61. (table[j].cells[3].innerHTML == No.value && No.checked))
  62. {
  63. table[j].style.display = "";
  64. }
  65. else
  66. {
  67. table[j].style.display = "none";
  68. }
  69. }
  70. }
  71. else
  72. {
  73. for(var j = 2; j < table_length; j++)
  74. {
  75. table[j].style.display = "";
  76. }
  77. }
  78. }
  79.  
  80. function filtr_search_danezm (wyrazenie)
  81. {
  82. var tekst = wyrazenie.value.toLowerCase().split(" ");
  83. var table = document.getElementById("sortable");
  84. var element;
  85. for (var r = 2; r < table.rows.length; r++)
  86. {
  87. element= table.rows[r].cells[2].innerHTML.replace(/<[^>]+>/g,"");
  88. var displayStyle = 'none';
  89. for (var k = 0; k < tekst.length; k++)
  90. {
  91. if (element.toLowerCase().indexOf(tekst[k])>=0)
  92. displayStyle = '';
  93. else
  94. {
  95. displayStyle = 'none';
  96. break;
  97. }
  98. }
  99. table.rows[r].style.display = displayStyle;
  100. }
  101. }
  102.  
  103. function filtr_search_nrzm (wyrazenie)
  104. {
  105. var tekst = wyrazenie.value.toLowerCase().split(" ");
  106. var table = document.getElementById("sortable");
  107. var element;
  108. for (var w = 2; w < table.rows.length; w++)
  109. {
  110. element = table.rows[w].cells[1].innerHTML.replace(/<[^>]+>/g,"");
  111. var displayStyle = 'none';
  112. for (var l = 0; l < tekst.length; l++)
  113. {
  114. if (element.toLowerCase().indexOf(tekst[l])>=0)
  115. displayStyle = '';
  116. else
  117. {
  118. displayStyle = 'none';
  119. break;
  120. }
  121. }
  122. table.rows[w].style.display = displayStyle;
  123. }
  124. }
[JAVASCRIPT] pobierz, plaintext


  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <html>
  3. <head>
  4. <link rel="stylesheet" href="css/style.css" type="text/css" />
  5. <script type="text/javascript" src="src/filtr.js"></script>
  6. </head>
  7. <body>
  8. <?php
  9. /* tutaj jest połączenie z bazą danych */
  10. ?>
  11. <form method="POST" action="produkty.php">
  12. <div id="header">
  13. <table>
  14. <tr>
  15. <td>
  16. <input type="submit" id="przycisk" name="Send" value="POKAŻ">
  17. </td>
  18. </tr>
  19. </table>
  20. <hr />
  21. </div>
  22. <div id="wrapper">
  23. <table border="1" id="sortable">
  24. <thead>
  25. <tr id="tabh">
  26. <th></th>
  27. <th>Numer zamówienia</th>
  28. <th>Dane zamawiającego</th>
  29. <th>Zapłacone</th>
  30. <th>Status realizacji</th>
  31. <th>Data utworzenia</th>
  32. <th>Blokujący</th>
  33. </tr>
  34. <tr id="tabh_filtr">
  35. <th></th>
  36. <th>
  37. <form>
  38. <input name="filtr" id="textbox" onkeyup="filtr_search_nrzm(this)" type="text">
  39. </form>
  40. </th>
  41. <th>
  42. <form>
  43. <input name="filtr" id="textbox" onkeyup="filtr_search_danezm(this)" type="text">
  44. </form>
  45. </th>
  46. <th>
  47. <button type="button"onClick="filtr_click2()">Filtruj</button>
  48. <div id="filtr_zaplacone">
  49. <p><input class="largecheckbox" type="checkbox" onChange="filtr_start2()" id="Yes" value="Tak"/> Tak</p>
  50. <p><input class="largecheckbox" type="checkbox" onChange="filtr_start2()" id="No" value="Nie"/> Nie</p>
  51. </div>
  52. </th>
  53. <th>
  54. <button type="button" onClick="filtr_click()">Filtruj</button>
  55. <div id="filtr_status">
  56. <p><input class="largecheckbox" type="checkbox" onChange="filtr_start()" id="New" value="Nowe"/> Nowe</p>
  57. <p><input class="largecheckbox" type="checkbox" onChange="filtr_start()" id="Accepted" value="Zaakceptowane, w trakcie kompletacji"> Zaakceptowane, w trakcie kompletacji</p>
  58. <p><input class="largecheckbox" type="checkbox" onChange="filtr_start()" id="Completed" value="Skompletowane, do realizacji"> Skompletowane, do realizacji</p>
  59. <p><input class="largecheckbox" type="checkbox" onChange="filtr_start()" id="In_realization" value="W trakcie realizacji"> W trakcie realizacji</p>
  60. <p><input class="largecheckbox" type="checkbox" onChange="filtr_start()" id="Realized" value="Zrealizowane, do wysłania"> Zrealizowane, do wysłania</p>
  61. <p><input class="largecheckbox" type="checkbox" onChange="filtr_start()" id="Sended" value="Wysłane"> Wysłane</p>
  62. <p><input class="largecheckbox" type="checkbox" onChange="filtr_start()" id="Finished" value="Zakończone"> Zakończone</p>
  63. <p><input class="largecheckbox" type="checkbox" onChange="filtr_start()" id="Paused" value="Wstrzymane"> Wstrzymane</p>
  64. <p><input class="largecheckbox" type="checkbox" onChange="filtr_start()" id="Canceled" value="Anulowane"> Anulowane</p>
  65. </div>
  66. </th>
  67. <th></th>
  68. <th></th>
  69. </thead>
  70. <tbody>
  71. <?php
  72. while($row = mssql_fetch_assoc($tabela_kody))
  73. {
  74. if($data = $row['DataUtworzenia'])
  75. {
  76. $str = strtotime($data);
  77. $datazm = date('m-d-Y', $str);
  78. }
  79. else
  80. $datazm = null;
  81.  
  82. if(is_null($row['DataZaplaty']))
  83. {
  84. $zaplacone = "Nie";
  85. }
  86. else
  87. $zaplacone = "Tak";
  88.  
  89.  
  90. echo "<tr id=tabb1>
  91. <td><input type=checkbox name=chbox[] class=largecheckbox value=".$row['NrZamowienia']."</td>
  92. <td>".$row['NrZamowienia']."</td>
  93. <td><br>".$row['Nazwisko']." ".$row['Imie']."<p>".$row['NazwaFirmy']."</td>
  94. <td>".$zaplacone."</td>
  95. <td>".$row['StatusRealizacji']."</td>
  96. <td>".$datazm."</td>
  97. <td>".$row['Blokujacy']."</td>
  98. </tr>";
  99. } ?>
  100. </tbody>
  101. </table>
  102. </div>
  103. </form>
  104. </body>
  105. </html>


Dodałem kod php, bo wcześniej zapomniałem.