【问题标题】:Pagination with php limit number of links from get variable使用php限制来自get变量的链接数的分页
【发布时间】:2015-12-12 01:35:43
【问题描述】:

我正在制作一个简单的图片库,但遇到了障碍。它只是显示一些图像并使用分页来分隔每页 16 个图像。这一切都和我当前的分页一样。但是我的分页栏上有 101 个按钮。我想将其限制在当前页面两侧的 8 页范围内,如果在开始或结束时,则在任一侧 8 等。我的 current_page 和 last_page 变量只是来自页面地址的 get 变量。有没有一种简单的方法可以做到这一点。

for ($i = 1; $i < ($last_page + 1); $i++) {
    if ($current_page == $i) {
        echo '<li class="active"><a href="?page=' . $i . '">' . $i . '</a></li>';
    } else {
        echo '<li><a href="?page=' . $i . '">' . $i . '</a></li>';
    }
}

【问题讨论】:

    标签: php pagination


    【解决方案1】:
    $currentPage = 4;
    $numberPages = 8;
    $maxPages = 106;
    for ($i = $currentPage - ((int)($numberPages/2)), $pages = 0; $pages < $numberPages && $i <= $maxPages; $i++) {
        if ($i > 0) {
            if ($i == $currentPage) {
                echo '<li class="active"><a href="?page='.$i.
                '">'.$i.
                '</a></li>';
            } else {
                echo '<li><a href="?page='.$i.
                '">'.$i.
                '</a></li>';
            }
            $pages++;
        }
    }
    

    按照这些思路应该可以工作

    【讨论】:

    • 这 90% 有效,但当前页面始终是最后一个选项。我也想显示当前页面在范围的中间
    • 嗯,我现在不能用 PHP 编程,但我的 C# 版本的解决方案似乎将当前页面保持在中间。让我再做一些测试。
    • 好的,我已经更新了对我有用的代码,将当前页面保持在中间。看看,如果它仍然不起作用,请告诉我。
    • 没问题,有问题就问吧。
    猜你喜欢
    • 2013-01-22
    • 2021-11-02
    • 2013-06-13
    • 1970-01-01
    • 2015-02-23
    • 1970-01-01
    • 1970-01-01
    • 2014-06-05
    • 1970-01-01
    相关资源
    最近更新 更多