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

黄舟
Libérer: 2023-03-14 10:44:02
original
3314 Les gens l'ont consulté

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);//显示的页码数组
Copier après la connexion

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;     
     }
Copier après la connexion

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

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal