Search code examples
javascriptphpjquerybootstrap-table

How to do search on Multiple table colums using javascript and bootstrap table?


I want to search do search functionality on multiple colums using bootstrap table by using javascript guide me. Here i am showing my javascript code used for search on first column. Guide me that how t use more columns using javascript.

$("#search").on("keyup",function(){
var value=$(this).val();
$("table tr").each(function(index){
    if (index!==0){
        $row = $(this);
        var id= $row.find("td:first").text();
        if (id.indexOf(value)!==0){
            $row.hide();
        }
        else{
            $row.show();
        }
    }
});

});

HTML

 <input type="text" name="search" id="search" placeholder="Search">
      <table data-toggle="table" data-sort-name="name" data-sort-order="asc" >
           <thead>
           <tr>
                <th data-field="name" data-sortable="true">Name</th>
                <th data-field="address" data-sortable="true">Address</th>
                <th data-field="birthdate" data-sortable="true">Birth Date</th>
                <th>Gender</th>
                <th data-field="hobby" data-sortable="true">Hobbies</th>
                <th>Action</th>
           </tr>
            </thead>

Solution

  • Try this,

    Without your full html table, I can only guess what it looks like and try to create something that would work

    $("#search").on("keyup", function() {
      var value = $(this).val().toLowerCase();
      console.clear()
      $("table tr").each(function(index) {
        if (index !== 0) {
          $row = $(this);
          $row.find("td").each(function(i, td) {
            var id = $(td).text().toLowerCase();
            console.log(id + " | " + value + " | " + id.indexOf(value))
            if (id.indexOf(value) !== -1) {
              $row.show();
              return false;
            } else {
              $row.hide();
            }
          })
        }
      });
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <input type="text" name="search" id="search" placeholder="Search">
    <table data-toggle="table" data-sort-name="name" data-sort-order="asc">
      <thead>
        <tr>
          <th data-field="name" data-sortable="true">Name</th>
          <th data-field="address" data-sortable="true">Address</th>
          <th data-field="birthdate" data-sortable="true">Birth Date</th>
          <th>Gender</th>
          <th data-field="hobby" data-sortable="true">Hobbies</th>
          <th>Action</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>Peter</td>
          <td>Street 123</td>
          <td>03 may</td>
          <td>Male</td>
          <td>Code</td>
          <td>None</td>
        </tr>
        <tr>
          <td>Emma</td>
          <td>Street 123</td>
          <td>03 may</td>
          <td>Female</td>
          <td>Code</td>
          <td>None</td>
        </tr>
      </tbody>
    </table>