You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现PHP分页按钮的当前页激活状态?

如何让PHP分页导航的当前页面按钮处于激活状态?

要实现当前页面的分页按钮高亮(激活状态),我们需要先获取当前访问的页码,然后在生成每个分页元素时判断是否为当前页,给对应的元素添加Bootstrap的active类(同时得修复你代码里的小问题:中间的页码链接没有用li.page-item包裹,这不符合Bootstrap分页的结构规范)。

步骤1:获取并校验当前页码

首先从URL参数里拿到当前页码,同时做边界校验,避免非法页码导致的异常:

// 获取当前页码,默认显示第1页
$currentPage = isset($_GET['page']) ? (int)$_GET['page'] : 1;
// 确保当前页码在1到总页数之间,防止用户手动输入非法值
$currentPage = max(1, min($currentPage, $totalPages));

步骤2:修改分页代码,添加激活状态判断

下面是修改后的完整分页代码,关键位置都加了注释:

<?php if ($totalPages > 1) { ?>
    <ul class="pagination justify-content-center mb-4">
        <!-- 第一页按钮 -->
        <li class="page-item <?php echo $currentPage == 1 ? 'active' : ''; ?>">
            <a class="page-link" href="index.php?page=1">First page</a>
        </li>

        <!-- 中间的页码按钮(修复了原代码无li包裹的问题) -->
        <?php for ($i=2; $i < $totalPages; $i++){ ?>
            <li class="page-item <?php echo $currentPage == $i ? 'active' : ''; ?>">
                <a class="page-link" href="index.php?page=<?php echo $i; ?>"><?php echo $i; ?></a>
            </li>
        <?php } ?>

        <!-- 最后一页按钮 -->
        <li class="page-item <?php echo $currentPage == $totalPages ? 'active' : ''; ?>">
            <a class="page-link" href="index.php?page=<?php echo $totalPages; ?>">Last page</a>
        </li>
    </ul>
<?php } else { ?>
    <!-- 总页数≤1时的提示,可根据需求调整 -->
    <p class="text-center">只有一页内容</p>
<?php } ?>

额外优化(可选)

如果想让激活状态的按钮不可点击,更符合用户体验,可以把激活的链接改成不可交互的span标签:

<!-- 以第一页为例 -->
<li class="page-item <?php echo $currentPage == 1 ? 'active' : ''; ?>">
    <?php if ($currentPage == 1): ?>
        <span class="page-link">First page</span>
    <?php else: ?>
        <a class="page-link" href="index.php?page=1">First page</a>
    <?php endif; ?>
</li>

内容的提问来源于stack exchange,提问作者Nayem323

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:10:35