I have a html table with some rows of data which has a column called status. There are three status they are In progress, To do, Completed. I have a drop down at the top. The drop down contains Any,In progress, To do, Completed. How can I load the data based on the selected drop down value. Here below I have attached an image of my page.
My code is here below. Table data is coming from database.
<div class="table-wrapper"> <div class="table-title"> </div> <div class="table-filter"> <div class="row"> <div class="col-sm-3"> <div class="show-entries"> <span>Show</span> <select class="form-control"> <option>5</option> <option>10</option> </select> <span>entries</span> </div> </div> <div class="col-sm-9"> <div class="filter-group"> <label>Status</label> <select class="form-control"> <option>Any</option> <option>Completed</option> <option>In Progress</option> <option>To Run</option> </select> </div> <span class="filter-icon"><i class="fa fa-filter"></i></span> </div> </div> </div> <form method="post" action="activeInactive.php"> <table class="paginated table table-striped table-hover"> <thead> <tr> <th>Test Name</th> <th>Created By</th> <th>Last updated</th> <th>Test status</th> <th>Actions</th> </tr> </thead> <tbody id="test_table"> <?PHP $test_access = 0; while($row = mysqli_fetch_array($tests_under_user)){ echo '<td width=250px; title="'.$testName.'"><a href="">'.$row['name'].'</a></td>'; echo '<td title="'.$row['created'].'">'.$row['created'].'</td>'; echo '<td title="'.$row['edited'].'">'.$row['edited'].'</td>'; echo '<td>In Progress</td>'; echo '<td>'; echo '<a href="" class="edit" data-toggle="modal"><i class="material-icons" data-toggle="tooltip" title="Edit"></i></a>'; echo '<a href="" class="delete" name="delete" data-toggle="modal" Onclick="return ConfirmDelete()"><i class="material-icons" data-toggle="tooltip" title="Delete"></i></a>'; echo '<a href="" class="copy" name="copy" data-toggle="modal"><i class="material-icons" data-toggle="tooltip" title="Copy" style="color: #2874A6">file_copy</i></a>'; echo '</td>'; } ?> </tbody> </table> </form> </div>
Advertisement
Answer
This may help you.
Visit here to try filtering with select tag.
function myFunction() { var input, filter, table, tr, td, i; input = document.getElementById("mylist"); filter = input.value.toUpperCase(); table = document.getElementById("myTable"); tr = table.getElementsByTagName("tr"); for (i = 0; i < tr.length; i++) { td = tr[i].getElementsByTagName("td")[0]; if (td) { if (td.innerHTML.toUpperCase().indexOf(filter) > -1) { tr[i].style.display = ""; } else { tr[i].style.display = "none"; } } } }
* { box-sizing: border-box; } #myInput { background-image: url('/css/searchicon.png'); background-position: 10px 10px; background-repeat: no-repeat; width: 100%; font-size: 16px; padding: 12px 20px 12px 40px; border: 1px solid #ddd; margin-bottom: 12px; } #mylist { background-position: 10px 10px; background-repeat: no-repeat; width: 100%; font-size: 16px; padding: 12px 20px 12px 40px; border: 1px solid #ddd; margin-bottom: 12px; } #myTable { border-collapse: collapse; width: 100%; border: 1px solid #ddd; font-size: 18px; } #myTable th, #myTable td { text-align: left; padding: 12px; } #myTable tr { border-bottom: 1px solid #ddd; } #myTable tr.header, #myTable tr:hover { background-color: #f1f1f1; }
<h2>My Customers</h2> <select id="mylist" onchange="myFunction()" class='form-control'> <option>A</option> <option>b</option> <option>c</option> </select> <table id="myTable"> <tr class="header"> <th style="width:60%;">Name</th> <th style="width:40%;">Country</th> </tr> <tr> <td>Alfreds Futterkiste</td> <td>Germany</td> </tr> <tr> <td>Berglunds snabbkop</td> <td>Sweden</td> </tr> <tr> <td>Island Trading</td> <td>UK</td> </tr> <tr> <td>Koniglich Essen</td> <td>Germany</td> </tr> <tr> <td>Laughing Bacchus Winecellars</td> <td>Canada</td> </tr> <tr> <td>Magazzini Alimentari Riuniti</td> <td>Italy</td> </tr> <tr> <td>North/South</td> <td>UK</td> </tr> <tr> <td>Paris specialites</td> <td>France</td> </tr> </table>