专业3 搜索功能的实现
第一步:增加一个搜索框和提交按钮 <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 } ?>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现