如何使用mysql + php搜索从数据库生成的列表

时间:2017-07-14 14:56:15

标签: php mysql

我使用以下php + mysql代码生成一个复选框列表,其中包含员工姓名及其员工ID作为该特定复选框的值。

<?php
while($row = mysqli_fetch_array($run_qry))
{
echo "<input type='checkbox' name='emply[]' 
value='91".$row['empid']."'>".$row['fname']." ".$row['lname'];
echo "<br>";
}
?>

通过这段代码,我得到了员工列表,现在我想在此列表上方搜索一个搜索框,以便搜索生成的列表,这样我就可以轻松选择特定的员工。 帮助我解决这个问题。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

嗯,要在客户端解决这个问题,你需要一个JS解决方案。

  • 只需用BD的结果集替换数组示例。

    <script>
      // the function searches in elements with class 'class_searh' the string 'string_searh'
      function search(class_searh, string_searh) {
    
        //get elements
        var class_searh_elements = document.getElementsByClassName(class_searh);
        //get string
        var string = string_searh.toString();
    
        //loop for each element
        for (var i = 0; class_searh_elements.length > i; i++) {
    
          //get the data on child element on 'class_searh_elements'
          var text_data = class_searh_elements[i].childNodes[0].data;
    
          //if maches add the class wich hides the element
          if (text_data.search(string) < 0) {
            class_searh_elements[i].classList.add('hidden');
            //if don't maches remove the class wich hides the element
          } else {
            class_searh_elements[i].classList.remove('hidden');
          }
        }
      }
    </script>
    
    <!--class that hides -->
    <style>
      .hidden {   display: none;   }
    </style>
    
    <?php
    //array example
    $run_qry = [
    
      ['empid' => 1, 'fname' => 'john', 'lname' => 'john'],
      ['empid' => 2, 'fname' => 'mary', 'lname' => 'anne'],
      ['empid' => 3, 'fname' => 'mc', 'lname' => 'donalds'],
    ];
    
    echo "<input type='text' name='string_seach' id='string_search' value='' onkeydown='search(\"elements_class\",this.value)' /> <hr>";
    
    foreach ($run_qry as $row) {
      echo "<label class='elements_class'>" . $row['fname'] . " " . $row['lname'] . "<input  type='checkbox' name='emply[]' value='91" . $row['empid'] . "' /><br></label>";
    }
    

    &GT;