PHP中模板分页的处理

时间:2010-01-16 10:38:36   来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:  因为是三层结构,类库-->PHP调用-->模板的形式,所有的数据处理是在类库里的,那么分页控制就在PHP调用中进行的,模板就复杂解析调用的结果。先直接看我们PHP调用中的分页代码:      --------------------------------------------------------------------------------   <?php   /**
  正文:

 PHP普通开发中php代码和html代码夹杂的情况中处理分页是比较简单的,也可以构建成函数的形式。最近开发中使用 Pear::DB + Smarty 的结构,于是考虑如果对模板进行分页,因为不能直接操作页面,所以就考虑生成分页字符串的形式。
  
  因为是三层结构,类库-->PHP调用-->模板的形式,所有的数据处理是在类库里的,那么分页控制就在PHP调用中进行的,模板就复杂解析调用的结果。先直接看我们PHP调用中的分页代码:
  
  --------------------------------------------------------------------------------
  <?php
  /**
   * 文件:Type.php
   * 功能:显示类别下的书籍
   * 作者:heiyeluren
   **/
  
  //包含公共文件,包括类库等
  require_once("include.php");
  
  //实例化操作对象
  $Type = new CTypes();
  
  //每页记录数
  define("PAGE_SIZE", 10);
  
  //获取GET提交的变量
  $TypeID = $tid ? $tid : intval($_REQUEST['tid']);
  
  //书籍总数
  $BookTotal = $Type->getBookTotal($TypeID);
  
  /* 分页显示核心 */
  //获取总页数
  $pageCount = ($BookTotal/PAGE_SIZE);
  //当前页数
  if (isset($_GET[page]) && !empty($_GET[page])) {
   $page = intval($_GET[page]);
  } else {
   $page = 1;
  }
  if ($page==1) {
   $startNum = 0;
  } else {
   $startNum = ($page-1) * PAGE_SIZE;
  }
  //生成分页链接字符串
  if ($page==1 && $pageCount>1) {
   $pageStr = "上一页 | <a href=/Type.php?tid=".$TypeID."&page=".($page+1).">下一页</a>";
  } elseif ($page==$pageCount && $pageCount>1) {
   $pageStr = "<a href=/Type.php?tid=".$TypeID."&page=".($page-1).">上一页</a> | 下一页";
  } elseif ($page>1 && $page<=$pageCount) {
   $pageStr = "<a href=/Type.php?tid=".$TypeID."&page=".($page-1).">上一页</a> |
   <a href=/Type.php?tid=".$TypeID."&page=".($page+1).">下一页</a>";
  } else {
   $pageStr = "上一页 | 下一页";
  }
  
  //按照页数获取当前记录
  $allBook = $Type->getBookFromType($TypeID, $start=$startNum, $offset=PAGE_SIZE);
  
  //Smarty变量赋值
  $tpl->assign('BookTotal', $BookTotal);
  $tpl->assign('allBook', $allBook);
  $tpl->assign('pageStr', $pageStr);
  
  $tpl->display('Type.html');
  
  unset($Type);
  
  ?>
  
  
  --------------------------------------------------------------------------------
  
  
  
  为了更清晰的认识,下面简单的描述一下类库中的基础内容:(代码不完整)
  
  
  
  --------------------------------------------------------------------------------
  <?php
  /**
   * 文件:Type.class.php
   * 功能:Type处理类
   *
   * 作者:heiyeluren
   **/
  
   class Type
来源:http://www.002pc.com/master/College/Programming/PHP/11975.html

收藏到:

关于《PHP中模板分页的处理》文章的评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面

随机文章

    SQL Error: select * from ***_ecms_article where classid='86' and checked=1 order by rand() limit 10

顶出来的热门

    SQL Error: select * from ***_ecms_article where classid='86' and checked=1 order by diggtop desc,id desc limit 10
站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td