欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Zend Framework框架实现类似Google搜索分页效果

程序员文章站 2024-03-04 22:19:24
本文实例讲述了zend framework框架实现类似google搜索分页效果。分享给大家供大家参考,具体如下: /** * * @param unknown...

本文实例讲述了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 = "<a href='\\$ncontroller\\$naction?pagenow=1&pagesize=$pagesize'>首页</a>&nbsp";
    if($pagenow>1){
      $nextpage = $pagenow-1;
      $native.=" <a href='\\$ncontroller\\$naction?pagenow=$nextpage&pagesize=$pagesize'>上一页</a> ";
    }
      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(;$start<$index;$start++){
        $native.="  <a href='\\$ncontroller\\$naction?pagenow=$start&pagesize=$pagesize'>$start</a>";
      }
    if($pagenow<$pagecount){
      $nextpage = $pagenow+1;
      $native.="  <a href='\\$ncontroller\\$naction?pagenow=$nextpage&pagesize=$pagesize'>下一页</a> ";
    }
    $native.="  <a href='\\$ncontroller\\$naction?pagenow=$pagecount&pagesize=$pagesize'>末页</a> ";
    $native.="  当前{$pagenow}||总共{$pagecount}页";
    $model->arrs = $res;
    $model->native = $native;
}

更多关于zend相关内容感兴趣的读者可查看本站专题:《zend framework框架入门教程》、《php优秀开发框架总结》、《yii框架入门及常用技巧总结》、《thinkphp入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家基于zend framework框架的php程序设计有所帮助。