Maison  >  Article  >  développement back-end  >  Comment afficher l'effet de pagination Baidu (sous la page de recherche) ?

Comment afficher l'effet de pagination Baidu (sous la page de recherche) ?

黄舟
黄舟original
2017-07-20 09:40:503298parcourir

1 : Collecte de données

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

Remarque : page_show est une fonction utilisée pour construire un tableau de données de numéro de page affichées, comme indiqué ci-dessous.

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

Une fois les données construites, vous devez utiliser certaines données pour porter des jugements afin d'afficher les numéros de page.

Les données sont utilisées dans la page html comme suit : (Remarque : les variables avec $this-> sont les variables collectées auparavant. Elles sont simplement écrites différemment sur la page html. Fondamentalement, elles sont écrites comme ceci dans le framework. S'il n'y a pas de framework, vous devez vous-même faire écho aux données suivantes et supprimer le caractère $this-> dans la variable)

<?php if ($pageCount > 1): ?>
<?php if (($pageIndex > 1)): ?>
<span class="page_up"><a href="<?php echo $link . &#39;&p=&#39; . ($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 . &#39;&p=&#39; . $page ?>"><?php echo $page;?></a></span>
<?php endif;?>
<?php endforeach;?>
<?php if (($pageIndex< $pageCount)): ?>
<span class="page_next"><a href="<?php echo $link . &#39;&p=&#39; . ($pageIndex +1) ?>">下一页</a></span>
<?php endif; ?>
<?php endif;?>

L'effet est le suivant. et la page de recherche Baidu, ci-dessous. La pagination est à peu près la même, vous devez modifier le style vous-même.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn