【问题标题】:Pagination like Flickr像 Flickr 一样的分页
【发布时间】:2012-06-26 21:45:22
【问题描述】:

我最近遇到了我的分页问题,​​恰好有大约 100 页,所以显然我的分页变得很长。

现在我想通过删除一些链接来防止这种情况,所以而不是

1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10

我想显示为

1 - 2 - 3 - 4 - 5 - ... - 10

或者当你在第 4 页时

1 - ... - 4 - 5 - 6 - ... 10

目前显示我的分页的脚本是这样的:

$links = array();
for($i = 0; $i < $totalPages; $i++) {
    array_push($links, $i);
    }

foreach($links as $pageLink) {
    if($pageLink == $page) {
    $pagination .= "<li><a href='" . BASE_URL . $url . $pageLink . ".html' class='active'>" . ($pageLink + 1) . "</a></li>";
    } else {
        if($pageLink === '...') {
            $pagination .= "<li><a href='#'>...</a></li>";
        } else {
            $pagination .= "<li><a href='" . BASE_URL . $url . $pageLink . ".html'>" . ($pageLink + 1) . "</a></li>";
        }
    }   
}

我将所有链接添加到一个数组中,以便调整它,但我不知道如何获得这样的分页。

【问题讨论】:

    标签: php arrays pagination


    【解决方案1】:

    您可以通过某种方式获取当前页码和最后一页码。代表您当前页面的寻呼机项目应该与您的其他页面有所不同。如果您的页码小于或等于 3,则显示 1 2 3 ... LastPageNumber 并且如果您的当前页面大于或等于 LastPageNumber - 2,那么您的分页应该看起来像 1 ... 67 68 69。否则您的分页应该看起来像 1 ... 30 31 32 33 34 ... 69(在此示例中,您的当前页面为 32)。

    【讨论】:

    • 谢谢,我只是不知道怎么做中间部分,这就是我现在得到的:pastebin.com/3m3z9aBa,它返回第一页和最后一页的正确链接,但不确定中间的怎么继续
    • 没关系,我想通了:pastebin.com/pHQJRzYN 非常感谢您的帮助,只是想不通。
    猜你喜欢
    • 1970-01-01
    • 2014-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-01
    • 2011-02-09
    相关资源
    最近更新 更多