-
-
class Page{
-
- protected $each_disNums;//每頁顯示的條目數
- protected $nums; /總條目數
- protected $current_page;//目前被選取的頁
- protected $sub_pages;//每次顯示的頁數
- protected $pageNums;//總頁數
- protected $ page_array = array();//用來建構分頁的陣列
- protected $subPage_link;//每個分頁的連結
- protected $subPage_type;//顯示分頁的類型
- protected $houz;///字尾
- /*
- __construct是SubPages的建構函數,用來在創建類別的時候自動運行.
- @$each_disNums每頁顯示的條目數
- @nums 總條目數
- @ current_num 目前被選取的頁
- @sub_pages每次顯示的頁數
- @subPage_link每個分頁的連結
- @subPage_type顯示分頁的型別
-
- 當@subPage_type=1的時候為普通分頁模式
- example:共4523筆記錄,每頁顯示10條,當前第1/453頁[首頁] [上頁] [下頁] [尾頁]
- 當@subPage_type=2的時候為經典分頁樣式
- example:目前第1/453頁[首頁] [上頁] 1 2 3 4 5 6 7 8 9 10 [下頁] [尾頁]
- */
- function __construct ($each_disNums,$nums,$current_page,$sub_pages,$subPage_link,$subPage_type,$houz=''){
- $this->each_disNums=intval($each_disNums);
- $this->nums=intval($each_disNums);
- $this->nums=$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);
- $this->houz=$houz;
- //echo $this->pageNums."--".$this->sub_pages;
- }
-
- /*
- __destruct析構函數,當類別不在使用的時候調用,該函數用來釋放資源。
- */
- 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 show_SubPages($subPage_type){
- if($subPage_type == 1){
- $this->subPageCss1();
- }elseif ($subPage_type == 2){
- $this->subPageCss2();
- }
- }
-
- /* 用來給建立分頁的陣列初始化的函數。
- */
- function initArray(){
- for($i=0;$isub_pages;$i ){
- $this->page_array[$i] =$我;
- }
- return $this->page_array;
- }
-
- /*
- construct_num_Page 函數使用構造顯示的邊界
- 即使:[1][2][3][4][5][6][7] [ 8 ][9][10]
- */
- function Construction_num_Page(){
- if($this->pageNums sub_pages){
- $current_array=array ();
- for($i=0;$ipageNums;$i ){
- $current_array[$i]=$i 1;
- }
- }else{
- $current_array=$this->initArray();
- if($this->current_page for($i=0;$i $current_array[$i]= $i 1;
- }
- }elseif ($this->current_page 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;
- }
- }
- }
-
- 回傳$current_array;
- }
-
- /*
- 建構普通模式的分頁
- 共4523筆記錄,每頁顯示10條,目前第1/453頁 [] [上頁] [下頁] [尾頁]
- */ bbs.it-home.org
- 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".$this->houz;
- $prewPageUrl=$this->subPage_link.($this->current_page-1).$this->houz;
- $subPageCss1Str.="[首頁] ";
- $subPageCss1Str.="[上一頁] ";
- }else {
- $subPageCss1Str.="[首頁] ";
- $subPageCss1Str.="[上一頁] ";
- }
-
- if($this->current_page pageNums){
- $lastPageUrl=$this->subPage_link.$this->pageNums.$this -> 胡茲;
- $nextPageUrl=$this->subPage_link.($this->current_page 1).$this->houz;
- $subPageCss1Str.=" [下一頁] ";
- $subPageCss1Str.="[尾頁] ";
- }else {
- $subPageCss1Str.="[下一頁] ";
- $subPageCss1Str.="[尾頁] ";
- }
-
- return $subPageCss1Str;
- }
- /*
- 建構經典模式的分頁
- 目前第1/453頁 [首頁] [上頁] 1 2 3 4 5 6 7 8 9 10 [下頁] [尾頁]
- */
- function subPageCss2(){
- $subPageCss2Str="";
- $subPageCss2Str.="共[".$this->nums."]條當前第".$this->current_page."/".$this->pageNums."頁";
-
- if($this->current_page > 1){
- $firstPageUrl=$this->subPage_link."1".$this->houz;
- $prewPageUrl=$this->subPage_link.($this->current_page-1).$this->houz;
- $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.$this->houz;
- $subPageCss2Str.="[".$s."]";
- }
- }
-
- if($this->current_page pageNums){
- $lastPageUrl=$this->subPage_link.$this->; pageNums.$this->houz;
- $nextPageUrl=$this->subPage_link.($this->current_page 1).$this->houz;
- $subPageCss2Str.=" [下一頁] ";
- $subPageCss2Str.="[尾頁] ";
- }else {
- $subPageCss2Str.="[下一頁] ";
- $subPageCss2Str.="[尾頁] ";
- }
- 回傳 $subPageCss2Str;
- }
- /*
- 建構經典模式ajax的分頁
- 目前第1/453頁[首頁] [上頁] 1 2 3 4 5 6 7 8 9 10 [下頁] [尾頁]
- */
- function subPageCss3($fun='',$v='n'){
- $subPageCss2Str="";
- $subPageCss2Str.="共[".$this->nums. "]條目前第".$this->current_page."/".$this->pageNums."頁";
-
- if($this->current_page > 1){
- //$ firstPageUrl=$this->subPage_link."1";
- $prewPageUrl=$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{
- $subPageCss2Str.="[$s]";
- }
- }
-
- if($this->current_page pageNums){
- $lastPageUrl=$this->pageNums;
- $nextPageUrl=$this->current_page 1;
- $subPageCss2Str.=" [下一頁] ";
- $subPageCss2Str.="[尾頁] ";
- }else {
- $subPageCss2Str.="[下一頁] ";
- $subPageCss2Str. ="[尾頁] ";
- }
- return $subPageCss2Str;
- }
- }
- ?>
複製程式碼>
複製碼 🎜>使用方法:
實例化一下這個page類,
$list = new Page(每頁多少條資料,資料總量,當前頁,用來建構分頁的陣列,每個分頁的連結 ,顯示分頁的類型,後綴 );
如 $list = new Page(10,1000,1,10,’/zjjz/’,2,’.html’);
echo $page = $list->subPageCss2();
就會顯示:
目前第1/100頁[首頁] [上頁] 1 2 3 4 5 6 7 8 9 10 [下頁] [尾頁] 每個連接就是/zjjz/1.html,/zjjz/2.html… .
可以根據直接需要,來組合這個每個分頁的鏈接,實現偽靜態。
而ajax分頁,就是
$list = new Page($pagesize,$areaAllNumber,$current_page,10,”,3);
$url = $val1.’,’.$val2;//這個就是你要觸發的js函數中要傳遞的值,
$page = $list->subPageCss3(‘checkProducts’,$url);//第一個參數就是要觸發的js函數。從而達到ajax分頁的效果。
| 還有一個subPageCss1是 共4523筆記錄,每頁顯示10條,目前第1/453頁 [首頁] [上頁] [下頁] [尾頁] 此種簡單樣式,也支援偽靜態。