PHP分页链接递增

时间:2013-02-14 22:48:22

标签: php pagination

基本上我想限制我页面上显示的数字量,但目前它显示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;
}

1 个答案:

答案 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;
}