PHP分页,只显示几个页面链接

时间:2012-03-23 21:00:14

标签: php

我位于分页部分的尾端,并且要求仅允许底部的几个页码链接。如果这些页面存在,可以说当前页面之前和之后两个。

if($pagination->total_pages() > 1) {
if($pagination->has_previous_page()) {
    echo "<a href=\"results.php?page=";
    echo $pagination->previous_page();
    echo "\">&laquo; Previous</a>";
}

for($i = 1; $i <= $pagination->total_pages(); $i++) {
    if($i == $page) {
        echo "<span class=\"current\">{$i}</span>";
    } else {
        echo "<a href=\"doc_list.php?page={$i}\">{$i}</a>";
    }
}

if($pagination->has_next_page()) {
    echo "<a href=\"results.php?page=";
    echo $pagination->next_page();
    echo "\">Next &raquo;</a>";
}
}

我将非常感谢任何指导,因为我不知道如何解决这个问题。

1 个答案:

答案 0 :(得分:9)

要显示当前页面加/减2,首先要计算要显示的最小和最大页码:

$min = max($page - 2, 1); // there are no pages < 1
$max = min($page + 2, $pagination->total_pages()); // and no pages > total_pages

然后显示链接:

for($i = $min; $i <= $max; ++$i) {
    if($i == $page) {
        echo "<span class=\"current\">{$i}</span>";
    } else {
        echo "<a href=\"doc_list.php?page={$i}\">{$i}</a>";
    }
}

您可能还想要显示上面的第一个/上一个/下一个/最后一个页面链接,但是我们需要在对它进行破解之前说明我们的结果。