根据过滤值显示内容

时间:2018-05-26 13:28:19

标签: php html

我在php中创建了一个简单的页面,它从数据库中获取数据并显示在网页上。

的index.php

<?php
  include_once 'dbop.php';
  $objUser = new Users();
  $users = $objUser->get_users();
?>
<!DOCTYPE html>
  <html lang="en">
   .
   .
   <form action="index.php" method="POST">
      <select name="role" id="role">
        <option value="Admin"><?php echo 'Admin' ?></option>
        <option value="SysAdmin"><?php echo 'SysAdmin' ?></option>
        <option value="User"><?php echo 'User' ?></option>
      </select>
      <table>
        <thead>
            <tr>
                <th>Name</th>
                <th>Role</th>
            </tr>
        </thead>
        <tbody>
        <?php
            for($i = 0; $i < sizeof($users); $i++) {
        ?>
        <tr>
            <td><?php echo ($users[$i]["name"]); ?></td>
            <td><?php echo ($users[$i]["role"]); ?></td>
        </tr>
        <?php } ?>
        </tbody>
    </table>
  </form>
  .
  .
</html>

dbop.php

<?php
 .
 .
 public function get_users() {
   $sql = "select name, role from users";
   $data = $this->dbObj->ExecuteQuery($sql);
   $data_all = array();
   if ($data != null && mysqli_num_rows($data) > 0) {
     while($fetch_data = mysqli_fetch_assoc($data)) {
       $arr = array();
       $arr["name] = $fetch_data['name'];
       $arr["role"] = $fetch_data['role'];
       $data_all[] = $arr;
     }
   }
   return $data_all;
 }
?>

我想根据所选角色(下拉列表)显示数据库中的用户名和角色。 例如,如果从下拉列表中选择了管理员值,则只需要在网页上显示管理员记录。

1 个答案:

答案 0 :(得分:0)

您可以使用不同的方法,这是一种简化的方法:

<?php
  include_once 'dbop.php';
  $selected ="";
   if ($_SERVER['REQUEST_METHOD'] === "POST") {
 if ( !isset( $_POST['Filter'] ) ) {
 $selected = $_POST['role'];
 }}

  $objUser = new Users();
  $users = $objUser->get_users();
?>

<!DOCTYPE html>
  <html lang="en">
   .
   .
   <form action="#" method="POST">
      <select name="role" id="role">
        <option value="Admin"><?php echo 'Admin' ?></option>
        <option value="SysAdmin"><?php echo 'SysAdmin' ?></option>
        <option value="User"><?php echo 'User' ?></option>
      </select>
      <input type="submit" name="submit" value="Filter" >
      </form>

      <table>
        <thead>
            <tr>
                <th>Name</th>
                <th>Role</th>
            </tr>
        </thead>
        <tbody>
        <?php
            for($i = 0; $i < sizeof($users); $i++) {
                if ($selected !=""){
            if (($users[$i]["role"])== $selected) {
        ?>
        <tr>
            <td><?php echo ($users[$i]["name"]); ?></td>
            <td><?php echo ($users[$i]["role"]); ?></td>
        </tr>
        <?php } } }?>
        </tbody>
    </table>
  .
  .
</html>

希望这有帮助。