-1

基本上我想限制在我的页面上显示的数字数量,但目前它显示 31 个数字,因为它们是 31 页的结果,我想显示 5 个链接并在每页后增加,

以下是它们当前的显示方式

[1] [2] [3] [4] [5] [6] [7] [8] etc..

这就是我想要的

[1] [2] [3] [4] [5]

我想要什么,但是一旦您选择例如数字 8,它就会将该数字放在中间,并在两侧放置 2 个链接,例如这样

[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;
}
4

1 回答 1

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;
}
于 2013-02-14T23:17:46.460 回答