A practical php paging class
Release: 2016-07-25 09:11:04
Original
858 people have browsed it
-
-
/* - Practical php paging class
- subpages
- */
- class SubPages{
- private $each_disNums;//The number of entries displayed per page
- private $nums ;//Total number of entries
- private $current_page;//The currently selected page
- private $sub_pages;//Number of pages displayed each time
- private $pageNums;//Total number of pages
- private $page_array = array(); //Array used to construct pagination
- private $subPage_link;//Links for each pagination
- private $subPage_type;//Display paging type
/*
- __construct is the constructor of SubPages , used to run automatically when creating a class.
- @$each_disNums The number of entries displayed on each page
- @nums The total number of entries
- @current_num The currently selected page
- @sub_pages The number of pages displayed each time
- @subPage_link Each page The link
- @subPage_type displays the type of paging
-
- When @subPage_type=1, it is the normal paging mode
- example: A total of 4523 records, 10 records are displayed on each page, the current page 1/453 [Home] [Previous page] [ Next page] [Last page]
- When @subPage_type=2, it is the classic paging style
- example: Current page 1/453 [Home page] [Previous page] 1 2 3 4 5 6 7 8 9 10 [Next page] [ Last page]
- */
- function __construct($each_disNums,$nums,$current_page,$sub_pages,$subPage_link,$subPage_type){
- $this->each_disNums=intval($each_disNums);
- $this->nums =intval($nums);
- if(!$current_page){
- $this->current_page=1;
- }else{
- $this->current_page=intval($current_page);
- }
- $this-> ;sub_pages=intval($sub_pages);
- $this->pageNums=ceil($nums/$each_disNums);
- $this->subPage_link=$subPage_link;
- $this->show_SubPages($subPage_type);
- //echo $this->pageNums."--".$this->sub_pages;
- }
-
- /*
- __destruct destructor, called when the class is no longer in use, this function is used to release resources.
- */
- function __destruct(){
- unset($each_disNums);
- unset($nums);
- unset($current_page);
- unset($sub_pages);
- unset($pageNums);
- unset($page_array) ;
- unset($subPage_link);
- unset($subPage_type);
- }
-
- /*
- show_SubPages function is used in the constructor. And used to determine what kind of paging to display
- */
- function show_SubPages($subPage_type){
- if($subPage_type == 1){
- $this->subPageCss1();
- }elseif ($subPage_type == 2) {
- $this->subPageCss2();
- }
- }
-
- /*
- Function used to initialize the array for creating pagination.
- */
- function initArray(){
- for($i=0;$i<$this->sub_pages;$i++){
- $this->page_array[$i]=$i;
- }
- return $this->page_array;
- }
-
- /*
- construct_num_Page该函数使用来构造显示的条目
- 即使:[1][2][3][4][5][6][7][8][9][10]
- */
- function construct_num_Page(){
- if($this->pageNums < $this->sub_pages){
- $current_array=array();
- for($i=0;$i<$this->pageNums;$i++){
- $current_array[$i]=$i+1;
- }
- }else{
- $current_array=$this->initArray();
- if($this->current_page <= 3){
- for($i=0;$i $current_array[$i]=$i+1;
- }
- }elseif ($this->current_page <= $this->pageNums && $this->current_page > $this->pageNums - $this->sub_pages + 1 ){
- for($i=0;$i $current_array[$i]=($this->pageNums)-($this->sub_pages)+1+$i;
- }
- }else{
- for($i=0;$i $current_array[$i]=$this->current_page-2+$i;
- }
- }
- }
- return $current_array;
- }
-
- /*
- 构造普通模式的分页
- 共4523条记录,每页显示10条,当前第1/453页 [首页] [上页] [下页] [尾页]
- */
- function subPageCss1(){
- $subPageCss1Str="";
- $subPageCss1Str.="共".$this->nums."条记录,";
- $subPageCss1Str.="每页显示".$this->each_disNums."条,";
- $subPageCss1Str.="当前第".$this->current_page."/".$this->pageNums."页 ";
- if($this->current_page > 1){
- $firstPageUrl=$this->subPage_link."1";
- $prewPageUrl=$this->subPage_link.($this->current_page-1);
- $subPageCss1Str.="[首页] ";
- $subPageCss1Str.="[上一页] ";
- }else {
- $subPageCss1Str.="[首页] ";
- $subPageCss1Str.="[上一页] ";
- }
-
- if($this->current_page < $this->pageNums){
- $lastPageUrl=$this->subPage_link.$this->pageNums;
- $nextPageUrl=$this->subPage_link.($this->current_page+1);
- $subPageCss1Str.=" [下一页] ";
- $subPageCss1Str.="[尾页] ";
- }else {
- $subPageCss1Str.="[下一页] ";
- $subPageCss1Str.="[尾页] ";
- }
- echo $subPageCss1Str;
- }
-
- /*
- 构造经典模式的分页
- 当前第1/453页 [首页] [上页] 1 2 3 4 5 6 7 8 9 10 [下页] [尾页]
- */
- function subPageCss2(){
- $subPageCss2Str="";
- $subPageCss2Str.="当前第".$this->current_page."/".$this->pageNums."页 ";
-
- if($this->current_page > 1){
- $firstPageUrl=$this->subPage_link."1";
- $prewPageUrl=$this->subPage_link.($this->current_page-1);
- $subPageCss2Str.="[首页] ";
- $subPageCss2Str.="[上一页] ";
- }else {
- $subPageCss2Str.="[首页] ";
- $subPageCss2Str.="[上一页] ";
- }
-
- $a=$this->construct_num_Page();
- for($i=0;$i $s=$a[$i];
- if($s == $this->current_page ){
- $subPageCss2Str.="[".$s."]";
- }else{
- $url=$this->subPage_link.$s;
- $subPageCss2Str.="[".$s."]";
- }
- }
-
- if($this->current_page < $this->pageNums){
- $lastPageUrl=$this->subPage_link.$this->pageNums;
- $nextPageUrl=$this->subPage_link.($this->current_page+1);
- $subPageCss2Str.=" [下一页] ";
- $subPageCss2Str.="[尾页] ";
- }else {
- $subPageCss2Str.="[下一页] ";
- $subPageCss2Str.="[尾页] ";
- }
- echo $subPageCss2Str;
- }
- }
- ?>
-
复制代码
Test page, test.php
-
-
- require_once("SubPages.php");
- //Number of items displayed per page
$page_size=20;
- //Total number of entries
$nums=1024;
- //Number of pages displayed each time
$sub_pages=10;
- //Get the current Which page
$pageCurrent=$_GET["p"];
- //if(!$pageCurrent) $pageCurrent=1;
-
- $subPages=new SubPages($page_size,$ nums,$pageCurrent,$sub_pages,"test.php?p=",2);
- ?>
-
Copy code
|
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31