PHP通用分頁實現

來源:互聯網
上載者:User

自己寫的一個通用分頁,帶下拉選擇,可設定顯示的分頁連結數,不多說,看代碼和注釋:

1<?php
2//Written by Shaoyun 20:17 2008年5月31日
3//Email:shaoyun at yeah.net
4//Blog:http://shaoyun.cnblogs.com
5//分頁函數:splitpage(記錄總數,每頁顯示記錄數,顯示幾條分頁連結)
6function splitpage($rscount,$pagesize,$shownum){
7//計算總頁數
8if ($rscount % $pagesize){
9  $pagenum=(int)($rscount/$pagesize)+1;
10}else{
11  $pagenum=(int)($rscount/$pagesize);
12}
13//過濾擷取正確的頁碼
14if(!isset($_GET["page"])){
15  $curpage=1;
16}elseif(is_numeric($_GET["page"])){
17  if($_GET["page"]>$pagenum)
18    $curpage=$pagenum;
19  else
20    $curpage=(int)$_GET["page"];
21  if($curpage<1)
22    $curpage=1;
23}else{
24  $curpage=1;
25}
26//設定前一頁、後一頁、上一頁、下一頁
27$first_page=1;
28$last_page=$pagenum;
29$up_page=$curpage-1;
30$down_page=$curpage+1;
31//擷取當前檔案名稱
32$addr_url=$_SERVER["SCRIPT_NAME"];
33$addr_url=strrev($addr_url);
34$addr_url=substr($addr_url,0,strpos($addr_url,"/"));
35$addr_url=strrev($addr_url);
36$addr_url=$addr_url."?page=";
37
38$page_html='共'.$rscount.'條記錄&nbsp;'.$pagesize.'條/頁&nbsp;第'.$curpage.'/'.$pagenum.'頁&nbsp;';
39
40$page_html.="<a href='".$addr_url.$first_page."'>首頁</a>&nbsp;";
41if($curpage>1){
42  $page_html.="<a href='".$addr_url.$up_page."'>上一頁</a>&nbsp;";
43}else{
44  $page_html.="上一頁&nbsp;";
45}
46//計算分頁邊界
47if($shownum % 2){
48  $show_front_num=(int)($shownum/2);
49  $show_back_num=(int)($shownum/2);
50}else{
51  $show_front_num=(int)($shownum/2)-1;
52  $show_back_num=(int)($shownum/2);
53}
54if($curpage<$show_front_num+1){
55  $fbegin=1;
56  $fend=$shownum;
57}elseif($curpage+$show_back_num>$pagenum){
58  $fend=$pagenum;
59  $fbegin=$pagenum-$shownum+1;
60}else{
61  $fbegin=$curpage-$show_front_num;
62  $fend=$curpage+$show_back_num;
63}
64//分頁連結
65for($idx=$fbegin;$idx<$fend+1;++$idx){
66  if($curpage==$idx){
67    $page_html.="<b>".$idx."</b>&nbsp;";
68  }else{
69    $page_html.="<a href='".$addr_url.$idx."'>".$idx."</a>&nbsp;";
70  }
71}
72
73if($curpage<$pagenum){
74  $page_html.="<a href='".$addr_url.$down_page."'>下一頁</a>&nbsp;";
75}else{
76  $page_html.="下一頁&nbsp;";
77}
78$page_html.="<a href='".$addr_url.$last_page."'>尾頁</a>&nbsp;";
79//下拉導航代碼
80$page_html.="跳轉到&nbsp;";
81$page_html.="<select onChange=window.location.href=this.options[this.selectedIndex].value>";
82for($idx=1;$idx<$pagenum+1;++$idx){
83  if($curpage==$idx){
84    $page_html.="<option value='".$addr_url.$idx."' selected>第".$idx."頁</option>";
85  }else{
86    $page_html.="<option value='".$addr_url.$idx."'>第".$idx."頁</option>";
87  }
88}
89$page_html.="</select>";
90
91echo $page_html;
92}
93?>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.