基本上我想限制我页面上显示的数字量,但目前它显示31个数字,因为它们是31页的结果,我想显示5个链接,只是在每个页面后递增,
以下是他们目前的展示方式
[1] [2] [3] [4] [5] [6] [7] [8] etc..
这是我想要的
[1] [2] [3] [4] [5]
我想要的只是,但是一旦你选择了例如数字8,它就会将这个数字放在中间,并将两个链接放在两边,例如像这样
[6] [7] [8] [9] [10]
这是我正在使用的当前代码
function showPageNumbers($totalrows,$page,$limit){
$query_string = $this->queryString();
$pagination_links = null;
$numofpages = $totalrows / $limit;
for($i = 1; $i <= $numofpages; $i++){
if($i == $page){
$pagination_links .= '<li class="active"><a href="#">'.$i.'</a></li>';
}else{
$pagination_links .= '<li><a href="?page='.$i.'&'.$query_string.'" title="go to page '.$i.'">'.$i.'</a></li>';
}
}
if(($totalrows % $limit) != 0){
if($i == $page){
$pagination_links .= '<li class="active"><a href="#">'.$i.'</a></li>';
}else{
$pagination_links .= '<li><a href="?page='.$i.'&'.$query_string.'" title="go to page '.$i.'">'.$i.'</a></li>';
}
}
return $pagination_links;
}
答案 0 :(得分:1)
您可以修改以下功能:
function showPageNumbers($totalrows, $page, $limit){
$query_string = $this->queryString();
$pagination_links = null;
$numofpages = $totalrows / $limit;
$linksPerPage = 5;
$firstNum = $page - round(($linksPerPage)/2);
if($firstNum < 1)
$firstNum =1;
$lastNum = $firstNum + $linksPerPage -1;
if($lastNum > $numofpages)
$lastNum = $numofpages;
for($i = $firstNum; $i <= $lastNum; $i++){
if($i == $page){
$pagination_links .= '<li class="active"><a href="#">'.$i.'</a></li>';
}else{
$pagination_links .= '<li><a href="?page='.$i.'&'.$query_string.'" title="go to page '.$i.'">'.$i.'</a></li>';
}
}
return $pagination_links;
}