专业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?>">&laquo;</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?>">&raquo;</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
    }
    ?>
复制代码

 

posted @   王越666  阅读(89)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示