Chinaunix首页 | 论坛 | 博客
  • 博客访问: 19005602
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类:

2008-05-17 18:49:29

作为一个开发人员来说,大概很让人受用的一个东东就是的类库了。我们知道,Pear::是专门处理分页的,而Pear::则是应用的一些类库。但是Pager也不仅仅是只能用于的分页链接,它已经为比超女还红的Ajax做好了准备,下面看看这两个包如何整合应用。

Pager and Javascript

现在走出第一步,Pager已经能够构建出的链接了,和Ajax整合,理论上应该也是能够实现的,下面是Pager和javascript分页的一个例子:

PHP:
  1. require_once 'Pager/Pager.php';
  2. $data = range(1, 100); //an array of data to paginate
  3. $pager_params = array(
  4.     'mode'     => 'Sliding',
  5.     'append'   => false//don't append the GET parameters to the url
  6.     'path'     => '',
  7.     'fileName' => 'javascript:revealDiv(%d)'//Pager replaces "%d" with the page number...
  8.     'perPage'  => 10, //show 10 items per page
  9.     'delta'    => 5,
  10.     'itemData' => $data,
  11. );
  12. $pager = & Pager::factory($pager_params);
  13. $n_pages = $pager->numPages();
  14. $links = $pager->getLinks();
  15. ?>
  16.    
  17.    
  18. PEAR::Pager example with JavaScript

  19. echo $links['pages']; ?>

  20. for ($i=1; $i <= $n_pages; ++$i) {
  21.     echo '
    $i.'">';
  22.     echo '

    Page '.$i.'

    '
    ;
  23.     foreach ($pager->getPageData($i) as $item) {
  24.         echo 'Item '.$item.'
    '
    ;
  25.     }
  26.     echo '
    ';
  • }
  • ?>

  • 例子中把分页的所有数据放入一个div标签,定义了两个比较重要的参数就是path(为空)和fileName,fileName原本应该是链接的文件名,但是这里用javascript替换了。

    Ajax上阵

    这个例子包括三个文件page.html,server.php,testdata.php

  • page.html

    用动态javascript--server.php来处理数据,调用HTML_AJAX.replace('target', 'testdata.php')来替换id为target这个div的内容。

    PHP:
    1. PEAR::Pager example with AJAX

    2.  
    3.  
    4. "target">I'm the target


  • testdata.php

    这是个很简单的php程序,取到分页数据并输出html

    PHP:
    1. require_once 'Pager/Pager.php';
    2. $data = range(1, 100); //an array of data to paginate
    3. $pager_params = array(
    4.     'mode'     => 'Sliding',
    5.     'append'   => false//don't append the GET parameters to the url
    6.     'path'     => '',
    7.     'fileName' => 'javascript:HTML_AJAX.replace(\'target\',\'testdata.php?pageID=%d\');'//Pager replaces "%d" with the page number...
    8.     'perPage'  => 10, //show 10 items per page
    9.     'delta'    => 1,
    10.     'itemData' => $data,
    11. );
    12. $pager = & Pager::factory($pager_params);
    13. $n_pages = $pager->numPages();
    14. $links = $pager->getLinks();
    15. echo '

      This container is loaded with an AJAX call

      '
      ;
    16. echo '

      DateTime: '. date('Y-m-d H:i:s') .'

      '
      ;
    17. echo '

      Page '. $pager->getCurrentPageId() .'

      '
      ;
    18. foreach ($pager->getPageData() as $item) {
    19.     echo 'Item '. $item .'
      '
      ;
    20. }
    21. echo '
      '
      .$pager->links;
    22. ?>
  • 最后,贴上幕后者server.php的

    用HTML_AJAX_Server来处理ajax这些烦心事吧

    PHP:
    1. include 'HTML/AJAX/Server.php';
    2.  
    3. $server = new HTML_AJAX_Server();
    4. $server->handleRequest();
    5. ?>

    web 2.0, Ajax的趋势图

    时下的web 2.0和Ajax概念正是如火如荼,且不论Ajax这东东到底是不是炒作的产物,就实际应用来说,Ajax在某些场合的确是顶好用而且看上去挺酷.

    蓝的是web 2.0,红的是Ajax
    web 2.0,ajax

    参考文档

    作者: 发表于10月 23, 2006 at 7:53 am

    : 可以任意, 转载时请务必以超链接形式标明文章和及此声明

  • 阅读(464) | 评论(0) | 转发(0) |
    给主人留下些什么吧!~~