ホームページ >バックエンド開発 >PHPチュートリアル >PHP ページング クラス コード、疑似静的 PHP ページング クラスをサポート

PHP ページング クラス コード、疑似静的 PHP ページング クラスをサポート

WBOY
WBOYオリジナル
2016-07-25 08:52:351264ブラウズ
  1. class Page{
  2. protected $each_disNums;//各ページに表示されるエントリの数
  3. protected $nums;//エントリの総数
  4. protected $current_page;//現在選択されているpage
  5. protected $sub_pages;//毎回表示されるページ数
  6. protected $pageNums;//総ページ数
  7. protected $page_array = array();//ページングの構築に使用される配列
  8. protected $subPage_link;//各paging Link
  9. protected $subPage_type;// ページングのタイプを表示
  10. protected $houz;// Suffix
  11. /*
  12. __construct は、クラスの作成時に自動的に実行される SubPages のコンストラクターです
  13. @$each_disNums それぞれに表示されるエントリ。 page Number
  14. @nums エントリの総数
  15. @current_num 現在選択されているページ
  16. @sub_pages 毎回表示されるページ数
  17. @subPage_link 各ページのリンク
  18. @subPage_type ページングの種類を表示
  19. @subPage_type=1の場合、通常のページネーションモードです
  20. 例: 合計 4523 レコード、各ページに 10 レコードが表示されます、現在のページ 1/453 [ホーム] [前のページ] [次のページ] [最後のページ]
  21. @subPage_type=2 の場合、クラシックですページングスタイル
  22. 例: 現在のページ 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,$houz=''){
  25. $this->each_disNums=intval($each_disNums);
  26. if(! $current_page) {
  27. $this->current_page=1;
  28. }else{
  29. $this->current_pages=intval($sub_pages); this->pageNums=ceil($nums/$each_disNums);
  30. $this->subPage_link=$subPage_link;
  31. $this->show_SubPages($subPage_type);
  32. $this->houz=$houz; //echo $this->pageNums."--".$this->sub_pages;
  33. }
  34. /*
  35. __destruct デストラクター。クラスが使用されなくなったときに呼び出され、この関数はリソースを解放するために使用されます。
  36. */
  37. 関数 __destruct(){
  38. unset($current_pages);
  39. unset($page_array); ;
  40. unset($subPage_link);
  41. unset($subPage_type);
  42. /*
  43. show_SubPages 関数がコンストラクターで使用されます。表示するページングの種類を決定するために使用されます
  44. */
  45. function show_SubPages($subPage_type){
  46. if($subPage_type == 1){
  47. $this->subPageCss1()
  48. }elseif ($subPage_type == 2) ) {
  49. $this->subPageCss2();
  50. }
  51. }
  52. /*
  53. ページング配列を初期化するために使用される関数。
  54. */
  55. function initArray(){
  56. for($i=0;$i<$this->sub_pages;$i++){
  57. $this->page_array[$i]=$i;
  58. }
  59. return $this->page_array;
  60. }
  61. /*
  62. construct_num_Page该関数数使用来造显表示の条目
  63. 即使用:[1][2][3][4][5][6][7][8][9][10]
  64. */
  65. 関数construct_num_Page(){
  66. if($this->pageNums < $this->sub_pages){
  67. $current_array=array();
  68. for($i=0;$i<$this->pageNums;$i++){
  69. $current_array[$i]=$i+1;
  70. }
  71. }else{
  72. $current_array=$this->initArray();
  73. if($this->current_page for($i=0;$i $current_array[$i]=$i+1;
  74. }
  75. }elseif ($this->current_page <= $this->pageNums && $this->current_page > $this->pageNums - $this->sub_pages + 1 ){
  76. for( $i=0;$i $current_array[$i]=($this->pageNums)-($this->sub_pages)+1+$i;
  77. }
  78. }else{
  79. for($i=0;$i $current_array[$i]=$this->current_page-2+$i;
  80. }
  81. }
  82. }
  83. return $current_array;
  84. }
  85. /*
  86. 造普通モードの分页
  87. 共4523条记录,每页显示10条,当前第1/453页 [首页] [上页] [下页] [尾页]
  88. */ bbs。 it-home.org
  89. 関数 subPageCss1(){
  90. $subPageCss1Str="";
  91. $subPageCss1Str.="共".$this->nums."条记录,";
  92. $subPageCss1Str.="每页显示".$this->each_disNums."条,";
  93. $subPageCss1Str.="当前第".$this->current_page."/".$this->pageNums."页 ";
  94. if($this->current_page> 1){
  95. $firstPageUrl=$this->subPage_link."1".$this->houz;
  96. $prewPageUrl=$this->subPage_link.($this->current_page-1).$this->houz;
  97. $subPageCss1Str.="[首页] ";
  98. $subPageCss1Str.="[上一页] ";
  99. }else {
  100. $subPageCss1Str.="[首页] ";
  101. $subPageCss1Str.="[上一页] ";
  102. }
  103. if($this->current_page < $this->pageNums){
  104. $lastPageUrl=$this->subPage_link.$this->pageNums.$this->houz;
  105. $nextPageUrl=$this->subPage_link.($this->current_page+1).$this->houz;
  106. $subPageCss1Str.=" [下一页] ";
  107. $subPageCss1Str.="[尾页] ";
  108. }else {
  109. $subPageCss1Str.="[下一页] ";
  110. $subPageCss1Str.="[尾页] ";
  111. }
  112. return $subPageCss1Str;
  113. }
  114. /*
  115. 造经典モード式の分页
  116. 当前第1/453页 [首页] [上页] 1 2 3 4 5 6 7 8 9 10 [下页] [尾页]
  117. */
  118. function subPageCss2( ){
  119. $subPageCss2Str="";
  120. $subPageCss2Str.="共[".$this->nums."]条現在の前第".$this->current_page."/".$this->pageNums."页";
  121. if($this->current_page > 1){
  122. $firstPageUrl=$this->subPage_link."1".$this->houz;
  123. $prewPageUrl=$this->subPage_link.($this->current_page-1).$this->houz;
  124. $subPageCss2Str.="[首页] ";
  125. $subPageCss2Str.="[上一页] ";
  126. }else {
  127. $subPageCss2Str.="[首页] ";
  128. $subPageCss2Str.="[上一页] ";
  129. }
  130. $a=$this->construct_num_Page();
  131. for($i=0;$i$s=$a[$i];
  132. if($s == $this->current_page ){
  133. $subPageCss2Str.="[".$s."]";
  134. }else{
  135. $url=$this->subPage_link.$s.$this->houz;
  136. $subPageCss2Str.="[".$s."]";
  137. }
  138. }
  139. if($this->current_page < $this->pageNums){
  140. $lastPageUrl=$this->subPage_link.$this->pageNums.$this->houz;
  141. $nextPageUrl=$this->subPage_link.($this->current_page+1).$this->houz;
  142. $subPageCss2Str.=" [下一页] ";
  143. $subPageCss2Str.="[尾页] ";
  144. }else {
  145. $subPageCss2Str.="[下一页] ";
  146. $subPageCss2Str.="[尾页] ";
  147. }
  148. $subPageCss2Str を返します。
  149. }
  150. /*
  151. クラシック モードの Ajax ページングを構築する
  152. 現在のページ 1/453 [ホーム] [前のページ] 1 2 3 4 5 6 7 8 9 10 [次のページ] [最後のページ]
  153. */
  154. function subPageCss3($ fun= '',$v='n'){
  155. $subPageCss2Str="";
  156. $subPageCss2Str.="合計 [".$this->nums."] 現在の番号は ".$this->current_page です。 "/".$this->pageNums."page";
  157. if($this->current_page > 1){
  158. //$firstPageUrl=$this->subPage_link."1"; =$this->current_page-1;
  159. $subPageCss2Str.="[ ホーム< ;/a>] ";
  160. $subPageCss2Str.="[ /a>] ";
  161. }else {
  162. $subPageCss2Str.="[ホーム] ";
  163. $subPageCss2Str.="[前のページ] ";
  164. }
  165. $a=$this->construct_num_Page();
  166. for($i=0;$i$s=$a[$i];
  167. if($s == $this->current_page ) {
  168. $subPageCss2Str. ="[$s]";
  169. }else{
  170. $subPageCss2Str.="[$s]";
  171. }
  172. }
  173. if($this- >current_page < $this->pageNums){
  174. $lastPageUrl=$this->pageNums;
  175. $nextPageUrl=$this->current_page+1;
  176. $subPageCss2Str.=" [次のページ] ";
  177. $subPageCss2Str.="[最後のページ] ";
  178. }else {
  179. $subPageCss2Str.="[下注ページ] ";
  180. $subPageCss2Str .="[最後のページ] ";
  181. } $subPageCss2Str
  182. }
  183. }
  184. ?>
コードをコピー
このページクラスをインスタンス化します。 $list = 新しいページ (ページごとのデータの数、データの総量、現在のページ、ページングの構築に使用される配列、各ページングのリンク、表示されるページングの種類、サフィックス); たとえば、 $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 = 新しいページ($pagesize,$areaAllNumber,$current_page,10,”,3); $url = $val1.’,’.$val2;//これは、トリガーする js 関数に渡される値です。 $page = $list->subPageCss3(‘checkProducts’,$url);//最初のパラメータは、トリガーされる js 関数です。これにより、ajax ページングの効果が得られます。

合計 4523 レコードを持つ subPageCss1 もあり、各ページに 10 レコードが表示され、現在のページは 1/453 [ホームページ] [前のページ] [次のページ] [最後のページ] このシンプルなスタイルは擬似もサポートしています-静的。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。