百度分页效果(搜索页面下面的)如何显示?

php教程评论551 views阅读模式

1:数据收集

$pageIndex = $_GET['p']?$_GET['p']:'1';//当前页码    
$perpage = 10;//每页显示多少数量,和页码无关    
$count = 121;//总数是多少,//和页码无关    
$flag =9;//显示页码个数    
$pageCount = ceil($count/$perpage); //总的页码个数
   $pagesInRange = $this->page_show($pageIndex, $pageCount, $flag);//显示的页码数组

注:page_show 是个函数,用于构造显示的页码数据的数组,如下所示。

public function page_show2($pageIndex, $pageCount, $flag){
  if($flag > $pageCount){             
  $flag = ( $pageCount);           }
  if($flag%2){            
  $aa = floor($flag/2);            
  $lowerBound = $pageIndex - $aa;        
  $upperBound = $pageIndex + $aa;          
  }else{
           $aa = floor($flag/2);            
           $lowerBound = $pageIndex - $aa;        
           $upperBound = $pageIndex + $aa -1;          
           }
     if( $lowerBound< 1){        
     $offset = 0-$lowerBound +1;        
     $lowerBound =1;        
     $upperBound = $upperBound + $offset;      
     }
     if($upperBound> $pageCount){
       $up = $upperBound;        
       $upperBound = $pageCount;
       $offset = $up-$pageCount;        
       $lowerBound = $lowerBound - $offset;      
       }
     $data = array();      
     for ($i=($lowerBound); $i <= ($upperBound); $i++) {         
     $data[] = $i;      
     }
     return $data;     
     }

数据构造完毕之后,需要用些数据,做判断,从而显示 哪些 页码。

数据 用于html页面如下:(注:带$this->的变量,就是之前收集好的变量,只是在html页面上的写法不同而已,基本上框架中都是这么写的。假如没有框架的话,你得自己echo 出下面的数据,并且,去掉变量中的$this->字符)

<?php if ($pageCount > 1): ?>
<?php if (($pageIndex > 1)): ?>
<span class="page_up"><a href="<?php echo $link . '&p=' . ($pageIndex-1) ?>">上一页</a></span>
<?php endif; ?>
<?php foreach($pagesInRange as $page) : ?>
<?php if ($page == $pageIndex): ?>
<span class="curr onthis"><?php echo $page;?></span>
<?php else : ?>
<span><a href="<?php echo $link . '&p=' . $page ?>"><?php echo $page;?></a></span>
<?php endif;?>
<?php endforeach;?>
<?php if (($pageIndex< $pageCount)): ?>
<span class="page_next"><a href="<?php echo $link . '&p=' . ($pageIndex +1) ?>">下一页</a></span>
<?php endif; ?>
<?php endif;?>

效果如下 和百度搜索页,下面的分页差不多吧,样式得自己修改下。

以上就是百度分页效果(搜索页面下面的)如何显示?的详细内容,更多请关注php教程网其它相关文章!

企鹅博客
  • 本文由 发表于 2020年8月13日 18:29:50
  • 转载请务必保留本文链接:https://www.qieseo.com/242286.html

发表评论