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

如何优化PHP分页器为Google样式,解决数据过多时分页过长问题

实现Google风格分页导航的修改方案

核心思路

Google分页的核心特点是:始终保留首页、末页入口,当前页前后仅显示固定数量的相邻页码,中间用省略号替代过多的页码项,既避免导航栏过长,又保证用户能快速跳转首尾页或相邻页面。

分页代码替换方案

将你原代码中<div class="paginador">部分的代码,替换为以下逻辑:

<div class="paginador">
    <ul>
        <?php
        // 首页与上一页按钮
        if ($pagina != 1) {
        ?>
            <li><a href="?pagina=1"><i class="fa-solid fa-backward-fast"></i></a></li>
            <li><a href="?pagina=<?php echo $pagina - 1; ?>"><i class="fa-solid fa-backward"></i></a></li>
        <?php
        }

        // 设置当前页前后显示的页码数量(可按需调整)
        $show_adjacent = 2;

        // 计算页码显示的起始与结束范围
        $start_range = max(1, $pagina - $show_adjacent);
        $end_range = min($total_paginas, $pagina + $show_adjacent);

        // 起始范围大于1时,显示省略号
        if ($start_range > 1) {
            echo '<li><span>...</span></li>';
        }

        // 遍历输出范围内的页码
        for ($i = $start_range; $i <= $end_range; $i++) {
            if ($i == $pagina) {
                echo '<li class="pageSelected">' . $i . '</li>';
            } else {
                echo '<li><a href="?pagina=' . $i . '">' . $i . '</a></li>';
            }
        }

        // 结束范围小于总页数时,显示省略号
        if ($end_range < $total_paginas) {
            echo '<li><span>...</span></li>';
        }

        // 下一页与末页按钮
        if ($pagina != $total_paginas) {
        ?>
            <li><a href="?pagina=<?php echo $pagina + 1; ?>"><i class="fa-solid fa-forward"></i></a></li>
            <li><a href="?pagina=<?php echo $total_paginas; ?>"><i class="fa-solid fa-forward-fast"></i></a></li>
        <?php
        }
        ?>
    </ul>
</div>

关键逻辑说明

  • 范围控制:通过$show_adjacent变量设置当前页前后显示的页码数量(示例设为2,可根据页面宽度调整),避免加载所有页码。
  • 省略号适配:当起始页码大于1、结束页码小于总页数时,自动插入省略号,优化视觉体验。
  • 合法性校验(可选):可以在获取$pagina后添加校验,防止用户手动输入非法页码:
// 在获取$pagina的代码后添加
$pagina = (int)$pagina;
if ($pagina < 1 || $pagina > $total_paginas) {
    $pagina = 1;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 19:33:12