免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: numlock
打印 上一主题 下一主题

一个分页类,大家批批 (增加一个分页函数) [复制链接]

论坛徽章:
0
11 [报告]
发表于 2004-05-15 20:14 |只看该作者

一个分页类,大家批批 (增加一个分页函数)

分页类有很多,实现的时候各有各的想法!你的我看了,好像url有点问题!

论坛徽章:
0
12 [报告]
发表于 2004-05-15 20:23 |只看该作者

一个分页类,大家批批 (增加一个分页函数)

  1. <?php

  2. function getPageNumber($url,$totalItems,$itemsPerPage=10,$currentPageNumber=1,$length=10){
  3.         $pageNumber='';
  4.         $url.=(strpos($url,'?')!=false)?'&':'?';
  5.         $totalPageNumber=ceil($totalItems/$itemsPerPage);
  6.         if ($totalPageNumber>;1){
  7.                
  8.                 $pageNumber='P '.$currentPageNumber.'/'.$totalPageNumber.' ';
  9.                
  10.                 if ($currentPageNumber>;1){
  11.                         //First Page
  12.                         $pageNumber.="<A HREF=".$url."page=1>;<<</A>; ";
  13.                         //Previous Page
  14.                         $pageNumber.="<B>;<A HREF=".$url."page=".($currentPageNumber-1).">;PREV</A>; </B>;";
  15.                 }
  16.                 //The start number is the first number of all pages which show on the current page.
  17.                 $startNumber=intval($currentPageNumber/$length)*$length;
  18.                 //Prev N page
  19.                 if ($currentPageNumber>;=$length){
  20.                         $pageNumber.="[<B>;<A HREF=".$url."page=".($startNumber-1).">;".($startNumber-1)."</A>;</B>;]...";
  21.                 }
  22.                
  23.                 $leftPageNumber=0;
  24.                 for ($i=$startNumber;$i<=$totalPageNumber;$i++){
  25.                         if ($i==0)continue;
  26.                         if ($i-$startNumber<$length){
  27.                                 if ($i==$currentPageNumber){
  28.                                         $pageNumber.="[<b>;$i</b>;]";
  29.                                 }else{
  30.                                         $pageNumber.="[<A HREF=".$url."page=".$i.">;".$i."</A>;]";
  31.                                 }
  32.                         }else{
  33.                                 $leftPageNumber=$totalPageNumber-$i+1;
  34.                                 break;
  35.                         }
  36.                 }
  37.                 if ($leftPageNumber>;=1){
  38.                         $pageNumber.="...[<B>;<A HREF=".$url."page=".($startNumber+$length).">;".($startNumber+$length)."</A>;</B>;] ";
  39.                 }
  40.                
  41.                 if ($currentPageNumber!=$totalPageNumber){
  42.                         //Next page
  43.                         $pageNumber.="<B>;<A HREF=".$url."page=".($currentPageNumber+1).">;NEXT</A>; </B>;";
  44.                         //Last page
  45.                         $pageNumber.="<A HREF=".$url."page=".$totalPageNumber.">;>;>;</A>; ";
  46.                 }
  47.                
  48.                 return $pageNumber;
  49.                
  50.         }else return $pageNumber;
  51.        
  52.        
  53. }


  54. //Example:

  55. $currentPageNumber=( isset($_GET['page']) ) ? intval($_GET['page']) : 1;
  56. //get currentPageNumber

  57. echo getPageNumber('function.pagenumber.php?a=1',350,10,$currentPageNumber);
  58. //getPageNumber('视图的url','需要分页的条目总数','每页几个条目','当前页码',‘每页显示几个页码’)



  59. ?>;
复制代码



把这段代码保存为function.pagenumber.php,就可以看到效果!


当前页码的获得实际上可以包含在类和函数内部,由于个人特殊需求,放在了外面。有需求的自己改一下!

论坛徽章:
0
13 [报告]
发表于 2004-05-16 23:45 |只看该作者

一个分页类,大家批批 (增加一个分页函数)

我用我自己写得函数
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP