Cet article présente principalement la méthode back-end PHP pour réaliser le code de génération d'indice de pagination des pages Web. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer. Pagination des pages Web L'effet de sélection affecte directement l'expérience utilisateur. Il existe de nombreuses méthodes avec des fonctions similaires. Le principal avantage de la méthode que j'ai écrite ici est que les extrémités avant et arrière sont séparées et que vous pouvez définir vous-même la longueur et le nombre de lignes de pagination
Légende du test :
Rendu :
Code d'implémentation :
/** * * @param $page 页码(1至正无穷) * @param $num 数据中多上行为一页 * @param $rows 数据的总行数 * @param $length 下标的最大长度 * @return array */ public function PageDate($page, $num , $rows , $length){ //初始化数据 $MaxPage = 0; //最大页码 $MinPage = 0; //最小页码 $ServerPage = 0; //下拉框中显示的页码 $PageData = array(); //全部的页码集合(用户下拉框选择) $PageShowData = array(); //用于显示下标的页码集合 $page = intval($page); if($rows == 0){ return $data = array( 'page' => $page, 'MaxPage' => $MaxPage, 'MinPage' => $MinPage, 'ServerPage' => $ServerPage, 'PageData' => $PageData, 'PageShowData' => $PageShowData ); } //得到最大分页和最小分页 $MaxPage = intval($rows / $num); $double = $rows % $num; if($double > 0.000000001) { $MaxPage += 1; } $MinPage = 1; $ServerPage = 1; //得到页码的全部项目 for($i = 1; $i <= $MaxPage; $i++ ){ $PageData[$i] = $i; } //对页码进行正确性改正 if($page < $MinPage){ $page = 1; } if($page > $MaxPage){ $page = 1; } /*生成显示的页码标签*/ //生成左侧的代码快 if($page == $MinPage){ $PageShowData[1] = $page; } if($page > $MinPage){ $PageShowData[1] = $MinPage; // $PageShowData[2] = $page - 1; // << $PageShowData[2] = '<<'; // << if($page -2 > $MinPage ){ $PageShowData[3] = $page - 2; $PageShowData[4] = $page - 1; }elseif($page -2 == $MinPage){ $PageShowData[3] = $page - 1; } //确定选中的页码代码快 $PageShowData[count($PageShowData) + 1] = $page; } $COUNT = count($PageShowData) + 1; //生成右侧的代码块 if($page == $MaxPage){ return $data = array( 'page' => $page, 'MaxPage' => $MaxPage, 'MinPage' => $MinPage, 'ServerPage' => $ServerPage, 'PageData' => $PageData, 'PageShowData' => $PageShowData ); } if($page < $MaxPage) { if($MaxPage - $page >= 2){ $j = 1; for($i = $COUNT; $i <= $length ; $i++){ $PageShowData[$i] = $page + $j; $j ++; if($PageShowData[$i] == $MaxPage -1){ break; } } } $COUNT = count($PageShowData) + 1; // $PageShowData[$COUNT] = $page + 1; //>> $PageShowData[$COUNT] = '>>'; $PageShowData[$COUNT + 1] = $MaxPage; //得到选中的参数 $ServerPage = $PageShowData[$COUNT-1] + 1; if($ServerPage > $MaxPage){ $ServerPage = 1; } return $data = array( 'page' => $page, 'MaxPage' => $MaxPage, 'MinPage' => $MinPage, 'ServerPage' => $ServerPage, 'PageData' => $PageData, 'PageShowData' => $PageShowData ); } }
Ce qui précède est cet article. L'intégralité du contenu, j'espère qu'il sera utile à l'étude de tout le monde. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !
Recommandations associées :
À propos de la façon d'implémenter des styles personnalisés de pagination dans thinkPHP3.2Utilisez ThinkPHP pour générer des vignettes et AfficherÀ propos de la méthode de suppression par lots de thinkPHPCe 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!