• <kbd id="qyk40"></kbd>
  • <strike id="qyk40"></strike><samp id="qyk40"><pre id="qyk40"></pre></samp>

    分頁顯示是一種非常常見的瀏覽和顯示大量數(shù)據(jù)的方法,屬于web編程中最常處理的事件之一。對于web編程的老手來說,編寫這種代碼實在是和呼吸一樣自 然,但是對于初學(xué)者來說,常常對這個問題摸不著頭緒,因此特地撰寫此文對這個問題進行詳細的講解,力求讓看完這篇文章的朋友在看完以后對于分頁顯示的原理 和實現(xiàn)方法有所了解。

    1. class SubPages{
    2.    private $each_disNums;//每頁顯示的條目數(shù)
    3.   private $nums;//總條目數(shù)
    4.   private $current_page;//當前被選中的頁
    5.   private $sub_pages;//每次顯示的頁數(shù)
    6.   private $pageNums;//總頁數(shù)
    7.   private $page_array = array();//用來構(gòu)造分頁的數(shù)組
    8.   private $subPage_link;//每個分頁的鏈接
    9.   private $subPage_type;//顯示分頁的類型
    10.    /*
    11.    __construct是SubPages的構(gòu)造函數(shù),用來在創(chuàng)建類的時候自動運行.
    12.    @$each_disNums 每頁顯示的條目數(shù)
    13.    @nums 總條目數(shù)
    14.    @current_num 當前被選中的頁
    15.    @sub_pages 每次顯示的頁數(shù)
    16.    @subPage_link 每個分頁的鏈接
    17.    @subPage_type 顯示分頁的類型
    18.     
    19.    當@subPage_type=1的時候為普通分頁模式
    20.          example: 共4523條記錄,每頁顯示10條,當前第1/453頁 [首頁] [上頁] [下頁] [尾頁]
    21.          當@subPage_type=2的時候為經(jīng)典分頁樣式
    22.          example: 當前第1/453頁 [首頁] [上頁] 1 2 3 4 5 6 7 8 9 10 [下頁] [尾頁]
    23.    */
    24.   function __construct($each_disNums,$nums,$current_page,$sub_pages,$subPage_link,$subPage_type){
    25.    $this->each_disNums=intval($each_disNums);
    26.    $this->nums=intval($nums);
    27.     if(!$current_page){
    28.     $this->current_page=1;
    29.     }else{
    30.     $this->current_page=intval($current_page);
    31.     }
    32.    $this->sub_pages=intval($sub_pages);
    33.    $this->pageNums=ceil($nums/$each_disNums);
    34.    $this->subPage_link=$subPage_link;
    35.    $this->show_SubPages($subPage_type);
    36.    //echo $this->pageNums."--".$this->sub_pages;
    37.   }
    38.      
    39.      
    40.   /*
    41.     __destruct析構(gòu)函數(shù),當類不在使用的時候調(diào)用,該函數(shù)用來釋放資源。
    42.    */
    43.   function __destruct(){
    44.     unset($each_disNums);
    45.     unset($nums);
    46.     unset($current_page);
    47.     unset($sub_pages);
    48.     unset($pageNums);
    49.     unset($page_array);
    50.     unset($subPage_link);
    51.     unset($subPage_type);
    52.    }
    53.      
    54.   /*
    55.     show_SubPages函數(shù)用在構(gòu)造函數(shù)里面。而且用來判斷顯示什么樣子的分頁 
    56.    */
    57.   function show_SubPages($subPage_type){
    58.     if($subPage_type == 1){
    59.     $this->subPageCss1();
    60.     }elseif ($subPage_type == 2){
    61.     $this->subPageCss2();
    62.     }
    63.    }
    64.      
    65.      
    66.   /*
    67.     用來給建立分頁的數(shù)組初始化的函數(shù)。
    68.    */
    69.   function initArray(){
    70.     for($i=0;$i<$this->sub_pages;$i++){
    71.     $this->page_array[$i]=$i;
    72.     }
    73.     return $this->page_array;
    74.    }
    75.      
    76.      
    77.   /*
    78.     construct_num_Page該函數(shù)使用來構(gòu)造顯示的條目
    79.     即使:[1][2][3][4][5][6][7][8][9][10]
    80.    */
    81.   function construct_num_Page(){
    82.     if($this->pageNums < $this->sub_pages){
    83.     $current_array=array();
    84.      for($i=0;$i<$this->pageNums;$i++){
    85.      $current_array[$i]=$i+1;
    86.      }
    87.     }else{
    88.     $current_array=$this->initArray();
    89.      if($this->current_page <= 3){
    90.       for($i=0;$i<count($current_array);$i++){
    91.       $current_array[$i]=$i+1;
    92.       }
    93.      }elseif ($this->current_page <= $this->pageNums && $this->current_page > $this->pageNums - $this->sub_pages + 1 ){
    94.       for($i=0;$i<count($current_array);$i++){
    95.       $current_array[$i]=($this->pageNums)-($this->sub_pages)+1+$i;
    96.       }
    97.      }else{
    98.       for($i=0;$i<count($current_array);$i++){
    99.       $current_array[$i]=$this->current_page-2+$i;
    100.       }
    101.      }
    102.     }
    103.       
    104.     return $current_array;
    105.    }
    106.      
    107.   /*
    108.    構(gòu)造普通模式的分頁
    109.    共4523條記錄,每頁顯示10條,當前第1/453頁 [首頁] [上頁] [下頁] [尾頁]
    110.    */
    111.   function subPageCss1(){
    112.    $subPageCss1Str="";
    113.    $subPageCss1Str.="共".$this->nums."條記錄,";
    114.    $subPageCss1Str.="每頁顯示".$this->each_disNums."條,";
    115.    $subPageCss1Str.="當前第".$this->current_page."/".$this->pageNums."頁 ";
    116.     if($this->current_page > 1){
    117.     $firstPageUrl=$this->subPage_link."1";
    118.     $prewPageUrl=$this->subPage_link.($this->current_page-1);
    119.     $subPageCss1Str.="[首頁] ";
    120.     $subPageCss1Str.="[上一頁] ";
    121.     }else {
    122.     $subPageCss1Str.="[首頁] ";
    123.     $subPageCss1Str.="[上一頁] ";
    124.     }
    125.       
    126.     if($this->current_page < $this->pageNums){
    127.     $lastPageUrl=$this->subPage_link.$this->pageNums;
    128.     $nextPageUrl=$this->subPage_link.($this->current_page+1);
    129.     $subPageCss1Str.=" [下一頁] ";
    130.     $subPageCss1Str.="[尾頁] ";
    131.     }else {
    132.     $subPageCss1Str.="[下一頁] ";
    133.     $subPageCss1Str.="[尾頁] ";
    134.     }
    135.       
    136.     echo $subPageCss1Str;
    137.       
    138.    }
    139.      
    140.      
    141.   /*
    142.    構(gòu)造經(jīng)典模式的分頁
    143.    當前第1/453頁 [首頁] [上頁] 1 2 3 4 5 6 7 8 9 10 [下頁] [尾頁]
    144.    */
    145.   function subPageCss2(){
    146.    $subPageCss2Str="";
    147.    $subPageCss2Str.="當前第".$this->current_page."/".$this->pageNums."頁 ";
    148.       
    149.       
    150.     if($this->current_page > 1){
    151.     $firstPageUrl=$this->subPage_link."1";
    152.     $prewPageUrl=$this->subPage_link.($this->current_page-1);
    153.     $subPageCss2Str.="[首頁] ";
    154.     $subPageCss2Str.="[上一頁] ";
    155.     }else {
    156.     $subPageCss2Str.="[首頁] ";
    157.     $subPageCss2Str.="[上一頁] ";
    158.     }
    159.       
    160.    $a=$this->construct_num_Page();
    161.     for($i=0;$i<count($a);$i++){
    162.     $s=$a[$i];
    163.      if($s == $this->current_page ){
    164.      $subPageCss2Str.="[".$s."]";
    165.      }else{
    166.      $url=$this->subPage_link.$s;
    167.      $subPageCss2Str.="[".$s."]";
    168.      }
    169.     }
    170.       
    171.     if($this->current_page < $this->pageNums){
    172.     $lastPageUrl=$this->subPage_link.$this->pageNums;
    173.     $nextPageUrl=$this->subPage_link.($this->current_page+1);
    174.     $subPageCss2Str.=" [下一頁] ";
    175.     $subPageCss2Str.="[尾頁] ";
    176.     }else {
    177.     $subPageCss2Str.="[下一頁] ";
    178.     $subPageCss2Str.="[尾頁] ";
    179.     }
    180.     echo $subPageCss2Str;
    181.    }
    182. }

    穩(wěn)定

    產(chǎn)品高可用性高并發(fā)

    貼心

    項目群及時溝通

    專業(yè)

    產(chǎn)品經(jīng)理1v1支持

    快速

    MVP模式小步快跑

    承諾

    我們選擇聲譽

    堅持

    10年專注高端品質(zhì)開發(fā)
    • 返回頂部
    丁香六月婷婷精品免费观看 | 精品国产yw在线观看| 久久99国产精品久久99果冻传媒| selao久久国产精品| 日韩免费的视频在线观看香蕉| 蜜桃精品免费久久久久影院| 国产精品蜜芽在线观看| 91精品久久久久久久久久小网站 | 国产亚洲精品美女久久久 | 久久国产乱子伦免费精品| 国产精品多人p群无码| 亚洲色精品aⅴ一区区三区| 久久露脸国产精品| 国产区精品福利在线观看精品| 香蕉视频在线精品| 国产日韩美国成人| 日韩免费一区二区三区在线| 制服丝袜日韩中文字幕在线| 日韩高清av在线| 凹凸国产熟女精品视频| 国产精品久久久久影视青草| 国产麻豆精品在线观看| 国产精品高清久久久久久久| 国产综合精品在线| 国产精品妇女一二三区| 国产青草亚洲香蕉精品久久| 日韩精品视频在线播放| 日韩精品中文字幕在线| 精品久久久久久无码中文字幕漫画 | 精品日产a一卡2卡三卡4卡乱| 亚洲国产美女精品久久久| 久久99精品久久久久久清纯| 精品人妻少妇一区二区三区不卡| 国产乱码精品一区二区三区四川人 | 中文字幕精品三区无码亚洲| 2020亚洲男人天堂精品| 中文字幕亚洲精品无码| 免费精品人在线二线三线区别| 国产精品久久久久久久| 国产精品林美惠子在线播放| 国产成人亚洲精品91专区高清|