xgnic 发表于 2018-2-11 12:01:24


            本文实例讲述了Zend Framework框架实现类似Google搜索分页效果。分享给大家供大家参考,具体如下:
/**
*
* @param unknown_type $model 表类型
* @param unknown_type $ncontroller 那个控制器提交的controller
* @param unknown_type $naction 那个action提交的action
*/
public function fenyepage2($model,$ncontroller,$naction){
    if(!isset($_SESSION))
    {session_start();}
    $pageSize = $_SESSION['pagesize'];
    $pageNow = $_SESSION['pagenow'];
    $offset = ($pageNow-1)*$pageSize;
    $db = $this->getAdapter();
    $select = $db->select();
    $select->from('student','*');
    if(!isset($_SESSION))
    {session_start();}
    if($_SESSION['qsname']!=""){
      $sname = $_SESSION['qsname'];
      $select->where('sname like ?',"%$sname%");
    }
    if($_SESSION['qsaddress']!=""){
      $saddress = $_SESSION['qsaddress'];
      $select->where('saddress like ?',"%$saddress%");
    }
    if($_SESSION['qsdept']!=""){
      $sdept = $_SESSION['qsdept'];
      $select->where('sdept like ?',"%$sdept%");
    }
    $coutNews = $db->fetchAll($select);
    $pageCount = ceil(count($coutNews)/$pageSize);
    $select->limit($pageSize,$offset);//第一个参数:总共显示多少个。第二个参数:从第几个开始显示
    $res = $db->fetchAll($select);
    $native = null;
    $native = "首页&nbsp";
    if($pageNow>1){
      $nextPage = $pageNow-1;
      $native.=" 上一页 ";
    }
      if(($pageNow-1)>5){
      if($pageNow+4>$pageCount){//如果最后的页数和理应前面开始的页数小于10则
          $start = $pageCount-9;//开始的页数和结束的页数相差9
      }else{
          $start=$pageNow-5;//开始位置和结束位置相差5
      }
      }else{
      $start = floor(($pageNow-1)/10)*10+1;
      }
      if($pageCount>=$start+10){
      $index = $start+10;
      }
      else{
      $index = $pageCount+1;
      }
      for(;$startarrs = $res;
    $model->native = $native;
}
页: [1]
查看完整版本: Zend Framework框架实现类似Google搜索分页效果