我位于分页部分的尾端,并且要求仅允许底部的几个页码链接。如果这些页面存在,可以说当前页面之前和之后两个。
if($pagination->total_pages() > 1) {
if($pagination->has_previous_page()) {
echo "<a href=\"results.php?page=";
echo $pagination->previous_page();
echo "\">« 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 »</a>";
}
}
我将非常感谢任何指导,因为我不知道如何解决这个问题。
答案 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>";
}
}
您可能还想要显示上面的第一个/上一个/下一个/最后一个页面链接,但是我们需要在对它进行破解之前说明我们的结果。