第一步:增加一个搜索框和提交按钮
<div class="container">
<form class="form-inline" action="list.php" method="post">
<label for="email">请输入关键字:</label>
<input type="text" class="form-control" name="keywords" value="<?php echo $keywords?>">
<button type="submit" class="btn btn-primary">搜索</button>
</form>
</div>
说明:
由于搜索和列表展示功能都是查询,所以不需要新建文件单独开发此功能,可以和列表展示功能合二为一,故action的提交地址为列表展示页面的地址。
文本框一定要起name,否则提交后服务器端得不到数据
methods一般来说设为post请求
第二步:接收搜索的条件
// 接收搜索的条件
$keywords = $_REQUEST['keywords'];
说明:
服务器端接收数据,推荐使用$_REQUEST,因为有很多时候会不得知客户端的提交方式
第三步:判断是否传入关键字,来决定SQL的记录数统计
// 分页的第二步:计算总记录数
$sql = "select count(*) as num from student";
if(!empty($keywords)){
$sql.=" where stu_name like '%$keywords%'";
}
$res = mysqli_query($link, $sql);
$count = mysqli_fetch_assoc($res);
$number = $count['num'];
第四步:将条件拼接带入SQL查询中
// 书写查询语句
$sql = "select * from student";
if(!empty($keywords)){
$sql.= " where stu_name like '%$keywords%'";
}
$sql.=" limit $pageLimit,$pageSize";
第五步:若要保留条件分页则该步骤可完成
为文本框设置默认值
<input type="text" class="form-control" name="keywords" value="<?php echo $keywords?>">
点击分页也要传递搜索条件
<ul class="pagination">
<!-- 上一页-->
<li><a href="list.php?p=<?php echo $upPage?>&&keywords=<?php echo $keywords?>">«</a></li>
<!-- 数字分页-->
<?php
for ($i = 1; $i <= $pageNum; $i++) {
?>
<li><a href="list.php?p=<?php echo $i ?>&&keywords=<?php echo $keywords?>"><?php echo $i ?></a></li>
<?php
}
?>
<!-- 下一页-->
<li><a href="list.php?p=<?php echo $nextPage?>&&keywords=<?php echo $keywords?>">»</a></li>
</ul>
第六步:让搜索的关键字标红显示
<?php
foreach ($data as $key => $val) {
?>
<tr>
<td><?php echo $val['stu_id'] ?></td>
<td>
<?php
echo str_replace($keywords,"<font color='red'>$keywords</font>",$val['stu_name'])
?>
</td>
<td><?php echo $val['stu_email'] ?></td>
<td><?php echo $val['stu_sex'] ?></td>
<td><?php echo $val['stu_tel'] ?></td>
<td><?php echo $val['class_name'] ?></td>
<td><?php echo $val['stu_photo'] ?></td>
<td>
<a href="delete.php?id=<?php echo $val['stu_id']?>"><button type="button" class="btn btn-danger">删除</button></a>
<button type="button" class="btn btn-success">修改</button>
</td>
</tr>
<?php
}
?>