设为首页 友情链接
在线留言 发表文章
加入收藏 广告联系

刺猬首页

| 专案技术 | 网络技术 | 图形图象 | 网络编程 | 网页设计 | 操作系统 | 服务器 | 技术白皮书 | 在线实验室 | 刺猬论坛 |
  | 数据库 | 设计赏析 | 存储频道 | 网络安全 | 私服架设 |  Solaris | 网站评估 | PC维护技巧 | 下载中心 | 博 客 |
专题: | Linux | java | cisco | 防病毒 | 刀片 | SOA | iscsi | ASP.NET | SQL | Oracle |
您现在的位置: IT公社 IT community >> 网络编程 >> PHP >> 教程正文 用户登录 新用户注册
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
select控件在Mozilla和O…
使用C#开发SmartPhone程…
SQL Artisan多表查询和统…
弹出窗口window.open()的…
Web程序从Struts向Strip…
在WIN98下安装PHP4+ PER…
PHP中如何使用header发送…
关于使用文本域(TextAre…
PHP的content-type=text…
PHP4调用JavaBean的摸索
  PEAR探奇之PEAR::Pager           
PEAR探奇之PEAR::Pager
 

  在页面上显示大量数据,是WEB项目中很常见的一个作法,但限于屏幕的大小,为了便于用户阅读,我们通常需要将数据分页显示,所以分页功能是大部份项目不可缺少的。PEAR::Pager是一个功能强大的分页类,使用非常方便。


  系统需求:PHP4.3.* /PHP5,PEAR::Pager


  PEAR::Pager有两种分页显示模式,一是Jumping,二是Sliding。两者有什么区别,我们来看两个例子:

Jumping.php


<?php

require_once 'Pager/Pager.php';

$params = array(
    'mode'       => 'Jumping',
    'perPage'    => 3,
    'delta'      => 5,
    'itemData'   => array('a','b','c','d','e','z','ty','xc','fg','fg','jk','hj','ty','xc','e','z','ty','xc','fg','fg','jk','hj','ty','xc')
);

echo "<BR>当前分页模式:".$params['mode'];
echo "<BR>每页显示数据条数:".$params['perPage'];
echo "<BR>显示页数:".$params['delta'];
echo "<BR>详细数据数组:";
print_r($params['itemData']);


$pager = & Pager::factory($params);
$data  = $pager->getPageData();
$links = $pager->getLinks();


echo "<P>最后效果:";
echo $links['all'];
echo $pager->linkTags;

echo '<P>当前页的数据: ' ;
echo "<pre>";
print_r($data);
echo "</pre>";

echo "其它类方法得到的数据:<P>";
echo 'getCurrentPageID()...: ';
var_dump($pager->getCurrentPageID()); 
echo "<BR>";
echo 'getNextPageID()......: '; 
var_dump($pager->getNextPageID()); 
echo "<BR>";
echo 'getPreviousPageID()..: '; 
var_dump($pager->getPreviousPageID());
echo "<BR>";
echo 'numItems()...........: ';
var_dump($pager->numItems()); 
echo "<BR>";
echo 'numPages()...........: ';
var_dump($pager->numPages());
echo "<BR>";
echo 'isFirstPage()........: ';
var_dump($pager->isFirstPage());
echo "<BR>";
echo 'isLastPage().........: ';
var_dump($pager->isLastPage());
echo "<BR>";
echo 'isLastPageComplete().: ';
var_dump($pager->isLastPageComplete());
echo "<BR>";
echo '$pager->range........: ';
var_dump($pager->range); echo "<BR>";

?>


  运行结果如下图:


Sliding.php

 

<?php
require_once 'Pager/Pager.php';

$month = 'september';

$params = array(
    'mode'      => 'Sliding',
    'append'    => false,
    'urlVar'    => 'num',
    'path'      => 'http://localhost/' . $month,
    'fileName'  => 'art%d.html',  //%d将被替换成当前页的数字
    'itemData'  => array('a','b','c','d','e','z','ty','xc','fg','fg','jk','hj','ty','xc','e','z','ty','xc','fg','fg','jk','hj','ty','xc'),
    'perPage'   => 3
);

echo "<BR>当前分页模式:".$params['mode'];
echo "<BR>每页显示数据条数:".$params['perPage'];
echo "<BR>链接指向路径:".$params['path'];
echo "<BR>链接指向文件名:".$params['fileName'];
echo "<BR>详细数据数组:";
print_r($params['itemData']);


$pager = & Pager::factory($params);

$data  = $pager->getPageData();

echo "<P>最后效果:";
echo $pager->links;

echo '<P>当前页的数据: ' ;
echo "<pre>";
echo 'Data for current page: '; print_r($data);
echo "</pre>";

echo "其它类方法得到的数据:<P>";
echo 'getCurrentPageID()...: ';
var_dump($pager->getCurrentPageID()); 
echo "<BR>";
echo 'getNextPageID()......: '; 
var_dump($pager->getNextPageID()); 
echo "<BR>";
echo 'getPreviousPageID()..: '; 
var_dump($pager->getPreviousPageID());
echo "<BR>";
echo 'numItems()...........: ';
var_dump($pager->numItems()); 
echo "<BR>";
echo 'numPages()...........: ';
var_dump($pager->numPages());
echo "<BR>";
echo 'isFirstPage()........: ';
var_dump($pager->isFirstPage());
echo "<BR>";
echo 'isLastPage().........: ';
var_dump($pager->isLastPage());
echo "<BR>";
echo 'isLastPageComplete().: ';
var_dump($pager->isLastPageComplete());
echo "<BR>";
echo '$pager->range........: ';
var_dump($pager->range); echo "<BR>";
?>

运行结果如下图:

  运行以上代码,可以发现,Jumping是跳跃式前进,一次翻几页,而Sliding是逐页地前进。

  在例子中可以看到PEAR::Pager提供了很多类方法,可以返回我们所需要的数据,如当前页ID,下一页ID,当前页上数据条数等等。

下面将所有类方法的作用列出,供参考:

Pager::Pager() – 构造函数 参数为二维数组 详见上面的示例

Pager::factory()  -- 建立一个Pager对象

Pager::getCurrentPageID()    返回当前页的ID

Pager::getLinks()  返回某个页所对应的链接 参数为页面的ID 参数为空则返回当前页的链接

Pager::getNextPageID()   返回下一页的ID

Pager::getOffsetByPageId() 返回记录范围 

例如当前页为1,每页显示10条,则返回(1,10)

如当前页为2,每页显示8条,则返回(8,16)

 

Pager::getPageData() 以数组形式返回当前页数据 

Pager::getPageIdByOffset() 根据记录范围返回页面ID

本方法仅当分页模式为Jumping时有效

Pager::getPageRangeByPageId() 返回某个页面所在的记录范围

例如模式为Jumping时,如果pageId=3 , delta=10,则返回(1,10),如果pageId=3 , delta=10,则仍然返回(1,10),因为1,3都在10的范围之内。如果pageId =14,则返回(10,20),

因为14落于10,20之间。

Pager::getPreviousPageID()   得到前一页的ID

Pager::getperpageselectbox()  返回一个XHTML的Select标签字符串

可用于直接跳转到某个页面

Pager::isFirstPage()  判断当前页是否第一页

Pager::isLastPage()  判断当前页是否最后第一页

Pager::isLastPageComplete()  判断是否到达最后一页

Pager::numItems()   返回总记录数

Pager::numPages()   返回总页数


其它功能及用法请参看PEAR::Pager文档:

频道声明:本频道的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出出处和原始作者 文章版权归本频道与文章作者所有.对于被频道转载文章的个人和网站,我们表示深深的谢意。

原始作者:佚名 录入时间:2006-11-9
信息来源:不详 投稿信箱:itqoo@126.com
教程录入:admin    责任编辑:admin 
  • 上一个教程:

  • 下一个教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    - 关于我们 - 合作伙伴 - 友情链接 - 广告刊登 - 投稿热线 - 在线留言版权声明联系方式 -
    IT公社版权所有 粤ICP备05127012号
    Copyrigh@2005-2006 itqoo.com.Inc All Rights Reserved  推荐分辨率 1024*768
    联系站长:E-Mail:itqoo@126.com     MSN:urchincc@hotmail.com    QQ:点击这里给我发消息
    特别感谢:亿太网络提供空间支持