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


Posted in PHP onNovember 25, 2016

本文实例讲述了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> ";
    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 Framework框架的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP 生成的XML以FLASH获取为乱码终极解决
Aug 07 PHP
PHP读取ACCESS数据到MYSQL的代码
May 11 PHP
php中的boolean(布尔)类型详解
Oct 28 PHP
腾讯微博提示missing parameter errorcode 102 错误的解决方法
Dec 22 PHP
php获取指定范围内最接近数的方法
Jun 02 PHP
ZF框架实现发送邮件的方法
Dec 03 PHP
Yii清理缓存的方法
Jan 06 PHP
PHP正则获取页面所有图片地址
Mar 23 PHP
PHP中读取文件的几个方法总结(推荐)
Jun 03 PHP
Yii2使用dropdownlist实现地区三级联动功能的方法
Jul 18 PHP
php实现统计二进制中1的个数算法示例
Jan 23 PHP
PHP使用PDO、mysqli扩展实现与数据库交互操作详解
Jul 20 PHP
php中替换字符串函数strtr()和str_repalce()的用法与区别
Nov 25 #PHP
Zend Framework上传文件重命名的实现方法
Nov 25 #PHP
PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法
Nov 25 #PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
Nov 25 #PHP
php对接java现实加签验签的实例
Nov 25 #PHP
php使用函数pathinfo()、parse_url()和basename()解析URL
Nov 25 #PHP
php实现的网页版剪刀石头布游戏示例
Nov 25 #PHP
You might like
自制短波长线天线频率预选器 - 成功消除B2K之流的镜像
2021/03/02 无线电
PHP的历史和优缺点
2006/10/09 PHP
php中比较简单的导入phpmyadmin生成的sql文件的方法
2011/06/28 PHP
ThinkPHP3.1新特性之内容解析输出详解
2014/06/19 PHP
php递归实现无限分类的方法
2015/07/28 PHP
Yii+upload实现AJAX上传图片的方法
2016/07/13 PHP
PHP+redis实现微博的推模型案例分析
2019/07/10 PHP
javascript 浏览器检测代码精简版
2010/03/04 Javascript
jQuery 美元符冲突的解决方法
2010/03/28 Javascript
基于jquery的鼠标拖动效果代码
2012/05/30 Javascript
让javascript加载速度倍增的方法(解决JS加载速度慢的问题)
2014/12/12 Javascript
jQuery中removeAttr()方法用法实例
2015/01/05 Javascript
Jquery中的$.each获取各种返回类型数据的使用方法
2015/05/03 Javascript
js基于cookie方式记住返回页面用法示例
2016/05/27 Javascript
jQuery获取元素父节点的方法
2016/06/21 Javascript
详解Node全局变量global模块
2017/09/28 Javascript
微信小程序progress组件使用详解
2018/01/31 Javascript
vue中使用echarts制作圆环图的实例代码
2018/07/27 Javascript
Vue中使用ElementUI使用第三方图标库iconfont的示例
2018/10/11 Javascript
一次微信小程序内地图的使用实战记录
2019/09/09 Javascript
nodejs制作小爬虫功能示例
2020/02/24 NodeJs
[51:34]Ti4主赛事胜者组 DK vs EG 2
2014/07/19 DOTA
跟老齐学Python之关于循环的小伎俩
2014/10/02 Python
python实现中文文本分句的例子
2019/07/15 Python
Python AutoCAD 系统设置的实现方法
2020/04/01 Python
python如何使用腾讯云发送短信
2020/09/17 Python
python中的对数log函数表示及用法
2020/12/09 Python
Python plt 利用subplot 实现在一张画布同时画多张图
2021/02/26 Python
HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常处理等
2014/05/08 HTML / CSS
欧舒丹英国官网:购买欧舒丹护手霜等明星产品
2017/01/17 全球购物
VELTRA台湾:世界自由行专家
2017/08/15 全球购物
建筑工程自我鉴定
2013/10/18 职场文书
办公室主任先进事迹
2014/01/18 职场文书
公安交警个人对照检查材料思想汇报
2014/10/01 职场文书
2014年卫生工作总结
2014/11/27 职场文书
把77A收信机改造成收音机
2022/04/05 无线电