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获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
Jun 18 PHP
浅析php过滤html字符串,防止SQL注入的方法
Jul 02 PHP
php多文件上传实现代码
Feb 20 PHP
PHP文件锁定写入实例解析
Jul 14 PHP
详解WordPress开发中过滤属性以及Sql语句的函数使用
Dec 25 PHP
php微信公众号开发模式详解
Nov 28 PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
May 29 PHP
PHP 实现公历日期与农历日期的互转换
Sep 13 PHP
php实现的表单验证类完整示例
Aug 13 PHP
PHP中Session ID的实现原理实例分析
Aug 17 PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
May 29 PHP
PHP网站常见安全漏洞,及相应防范措施总结
Mar 01 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
解析在apache里面给php写虚拟目录的详细方法
2013/06/24 PHP
PHP中使用asort进行中文排序失效的问题处理
2014/08/18 PHP
PHP排序算法类实例
2015/06/17 PHP
JavaScript脚本语言在网页中的简单应用
2007/05/13 Javascript
js取滚动条的尺寸的函数代码
2011/11/30 Javascript
JQuery的$命名冲突详细解析
2013/12/28 Javascript
JavaScript支持的最大递归调用次数分析
2014/06/24 Javascript
JavaScript中合并数组的N种方法
2014/09/16 Javascript
js获取表格的行数和列数的方法
2015/10/23 Javascript
js实现网页收藏功能
2015/12/17 Javascript
js仿QQ邮箱收件人选择与搜索功能
2017/02/10 Javascript
Angular.js跨controller实现参数传递的两种方法
2017/02/20 Javascript
Node.js读取文件内容示例
2017/03/07 Javascript
React 组件转 Vue 组件的命令写法
2018/02/28 Javascript
AngularJS与后端php的数据交互方法
2018/08/13 Javascript
在Vuex使用dispatch和commit来调用mutations的区别详解
2018/09/18 Javascript
详解如何为你的angular app构建一个第三方库
2018/12/07 Javascript
微信小程序页面上下滚动效果
2020/11/18 Javascript
Vue中用JSON实现刷新界面不影响倒计时
2020/10/26 Javascript
JavaScript中展开运算符及应用的实例代码
2021/01/14 Javascript
[03:42]2014DOTA2国际邀请赛 第三日比赛排位扑朔迷离
2014/07/12 DOTA
[01:13]2015国际邀请赛线下观战现场
2015/08/08 DOTA
python实现读取大文件并逐行写入另外一个文件
2018/04/19 Python
使用Python向C语言的链接库传递数组、结构体、指针类型的数据
2019/01/29 Python
Python根据成绩分析系统浅析
2019/02/11 Python
keras自定义损失函数并且模型加载的写法介绍
2020/06/15 Python
Python获取excel内容及相关操作代码实例
2020/08/10 Python
python属于哪种语言
2020/08/16 Python
Python datetime 如何处理时区信息
2020/09/02 Python
Expedia印度尼西亚站:预订酒店、廉价航班和度假套餐
2018/01/31 全球购物
TCP/IP模型的分界线
2012/12/01 面试题
新闻专业大学生找工作的自我评价
2013/10/30 职场文书
买卖协议书范本
2014/04/21 职场文书
超市工作总结范文2014
2014/12/19 职场文书
内勤岗位职责范本
2015/04/13 职场文书
2015初一年级组工作总结
2015/07/24 职场文书