像Flickr这样的分页

时间:2012-06-26 13:19:13

标签: php arrays pagination

我最近遇到了我的分页问题,​​碰巧有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>";
        }
    }   
}

我添加了一个数组中的所有链接,因此很容易调整它,但我无法弄清楚我是如何得到这样的分页。

1 个答案:

答案 0 :(得分:1)

不知何故,您可以获取当前页码和最后一页页码。代表当前页面的寻呼机项目应与其他页面略有不同。如果您的页码小于或等于3,则显示1 2 3 ... LastPageNumber,如果您当前页面大于或等于LastPageNumber - 2,那么您的分页应该看起来像1 ... 67 68 69.否则您的分页应该看起来像1 ... 30 31 32 33 34 ... 69(在本例中你的当前页面是32)。