PHP表数据过滤

时间:2014-07-02 04:10:45

标签: php jquery html

我想在表格使用下拉菜单中过滤数据(例如按名称过滤,这样我就可以看到名称为' Jane')的所有数据。我不想移动到另一个页面(如果可以的话,使用ajax或其他任何东西)。知道我该怎么办?

这是下拉菜单和表格代码:

<!-- Dropdown menu -->
<div class="col-md-2">      
        <select class="form-control selectpicker">
            <option value="">Name</option>
            <?php
                // print all name value from $administratorProvider
                foreach($administratorProvider as $administrator){
            ?>
            <option value="<?php $administrator->first_name ?>"><?php echo $administrator->first_name; ?></option>
            <?php
                }
            ?>
        </select>
</div>

<table>
    <!-- Table heading -->
    <thead>
        <tr>
            <th class="center">No.</th>
            <th>Name</th>
            <th>Email</th>
            <th>Join</th>
            <th>Last Login</th>
        </tr>
    </thead>

    <!-- Table body -->
    <tbody>
        <?php
            $i=1;
            foreach ($dataProvider as $data){
        ?>
        <tr>
            <div>
               <td class="center"><?php echo $i; ?></td>
               <td><?php echo $data->name; ?></td>
               <td><?php echo $data->email; ?></td>
               <td><?php echo $data->join; ?></td>
               <td><?php echo $data->last_login; ?></td>
            </div>
         </tr>
         <?php $i++; } ?>
    </tbody>
    <!-- // Table body END -->
</table>  

感谢您的任何建议 此致

1 个答案:

答案 0 :(得分:0)

您可以使用jQuery轻松实现此效果。制作两个文件:
1)包含该表的一个。
2)具有select标记的标记,该标记将在更改<select>标记时重新加载第一个文件。

让我们调用第一个文件select.php

<script>
    // Load the div with the contents of the table.php file with no GET parameter
    $('div').load('table.php');

    $('select').change(function() {
        var name = $(this).val();
        var data = 'name='+ name;

        // Make sure that the table's contents don't change if the first option tag 
        // is selected. 
        if(name != '') {
            $('div').load('table.php', data);
        }
    });
</script>

<div class="col-md-2">      
    <select class="form-control selectpicker">
        <option value="">Name</option>
 <?php
        // print all name value from $administratorProvider
        foreach($administratorProvider as $administrator){
 ?>
        <option value="<?php $administrator->first_name ?>"><?php echo $administrator->first_name; ?></option>
 <?php
        }
  ?>
    </select>
</div>

文件二可以称为table.php     

$sql = "SELECT * FROM table WHERE name = '".$name."'";
$query = mysql_query($sql)or die(mysql_error());
$num = mysql_num_rows($query);
$i = 0;

while($row = mysql_fetch_array($query)) {  
   // Save your info as variables
   $name[$i] = $row['name'];
   $email[$i] = $row['email'];
   $join[$i] = $row['join'];
   $login[$i] = $row['last_login'];
}
?>

<div>
<table>
<thead>
    <tr>
        <th class="center">No.</th>
        <th>Name</th>
        <th>Email</th>
        <th>Join</th>
        <th>Last Login</th>
    </tr>
</thead>

<tbody>
<?php
     for($i=0;$i<$num;$i++) {
 ?>
    <tr>
        <div>
           <td class="center"><?php echo $i; ?></td>
           <td><?php echo $name[$i]; ?></td>
           <td><?php echo $email[$i]; ?></td>
           <td><?php echo $join[$i]; ?></td>
           <td><?php echo $login[$i]; ?></td>
        </div>
     </tr>
<?php 
    } 
 ?>
</tbody>
</table>  
</div>

更改select标签后,第二个文件将加载所选选项标签的值作为GET变量发送到该文件。您可能想要使用SQL部分,因为我不确定您是如何获取相关数据的。