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数字格式化
Dec 06 PHP
超强分页类2.0发布,支持自定义风格,默认4种显示模式
Jan 02 PHP
PHP 文件类型判断代码
Mar 13 PHP
PHP 上传文件的方法(类)
Jul 30 PHP
Array of country list in PHP with Zend Framework
Oct 17 PHP
PHP 错误处理机制
Jul 06 PHP
PHP+Mysql基于事务处理实现转账功能的方法
Jul 08 PHP
php实现mysql数据库连接操作及用户管理
Nov 08 PHP
php封装的smarty类完整实例
Oct 19 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
Jul 31 PHP
Laravel中获取路由参数Route Parameters的五种方法示例
Sep 29 PHP
php实现微信小程序授权登录功能(实现流程)
Nov 13 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
mysql数据库差异比较的PHP代码
2012/02/05 PHP
PHPMailer使用教程(PHPMailer发送邮件实例分析)
2012/12/06 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
juqery 学习之三 选择器 可见性 元素属性
2010/11/25 Javascript
javascript中普通函数的使用介绍
2013/12/19 Javascript
调用innerHTML之后onclick失效问题的解决方法
2014/01/28 Javascript
详解JavaScript编程中正则表达式的使用
2015/10/25 Javascript
jQuery语法小结(超实用)
2015/12/31 Javascript
jQuery插件实现带圆点的焦点图片轮播切换
2016/01/18 Javascript
巧方法 JavaScript获取超链接的绝对URL地址
2016/06/14 Javascript
避免jQuery名字冲突 noConflict()方法
2016/07/30 Javascript
Node.js数据库操作之查询MySQL数据库(二)
2017/03/04 Javascript
Require.js的基本用法详解
2017/07/03 Javascript
详解React 16 中的异常处理
2017/07/28 Javascript
vue-cli下的vuex的简单Demo图解(实现加1减1操作)
2018/02/26 Javascript
VUE Error: getaddrinfo ENOTFOUND localhost
2018/05/03 Javascript
详解SPA中前端路由基本原理与实现方式
2018/09/12 Javascript
vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍
2018/09/29 Javascript
Seajs源码详解分析
2019/04/02 Javascript
Python 文件读写操作实例详解
2014/03/12 Python
python实现超简单端口转发的方法
2015/03/13 Python
python基础入门学习笔记(Python环境搭建)
2016/01/13 Python
使用Django启动命令行及执行脚本的方法
2018/05/29 Python
对sklearn的使用之数据集的拆分与训练详解(python3.6)
2018/12/14 Python
对Python+opencv将图片生成视频的实例详解
2019/01/08 Python
python实现画循环圆
2019/11/23 Python
Pytorch中Tensor与各种图像格式的相互转化详解
2019/12/26 Python
Python 代码调试技巧示例代码
2020/08/11 Python
Python自动登录QQ的实现示例
2020/08/28 Python
找到不普通的东西:Bonanza
2016/10/20 全球购物
中国首家奢侈品O2O网购平台:第五大道奢侈品网
2017/12/14 全球购物
小学生常见病防治方案
2014/06/06 职场文书
银行纠风工作实施方案
2014/06/08 职场文书
汶川大地震感悟
2015/08/10 职场文书
诚信考试主题班会
2015/08/17 职场文书
mysql 8.0.24 安装配置方法图文教程
2021/05/12 MySQL