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 相关文章推荐
使用 MySQL Date/Time 类型
Mar 26 PHP
phpMyAdmin 安装配置方法和问题解决
Jun 08 PHP
php对数组内元素进行随机调换的方法
May 12 PHP
CodeIgniter使用smtp服务发送html邮件的方法
Jun 10 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
Dec 22 PHP
php+js实现百度地图多点标注的方法
Nov 30 PHP
smarty模板数学运算示例
Dec 11 PHP
php使用PDO从数据库表中读取数据的实现方法(必看)
Jun 02 PHP
PHP编程快速实现数组去重的方法详解
Jul 22 PHP
PHP实现负载均衡下的session共用功能
Apr 17 PHP
使用laravel和ECharts实现折线图效果的例子
Oct 09 PHP
PHP正则之正向预查与反向预查讲解与实例
Apr 06 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
验证token、回复图文\文本、推送消息的实用微信类php代码
2016/06/28 PHP
PHP验证类的封装与使用方法详解
2019/01/10 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
javascript 页面只自动刷新一次
2009/07/10 Javascript
jQuery Selector选择器小结
2010/05/06 Javascript
jQuery实现的在线答题功能
2015/04/12 Javascript
js面向对象之公有、私有、静态属性和方法详解
2015/04/17 Javascript
javascript实现的字符串与十六进制表示字符串相互转换方法
2015/07/17 Javascript
JS实现可自定义大小,可双击关闭的弹出层效果
2015/10/16 Javascript
用canvas 实现个图片三角化(LOW POLY)效果
2016/02/18 Javascript
bootstrap modal弹出框的垂直居中
2016/12/14 Javascript
JS限制条件补全问题实例分析
2016/12/16 Javascript
Vue.JS项目中5个经典Vuex插件
2017/11/28 Javascript
解决iview多表头动态更改列元素发生的错误的方法
2018/11/02 Javascript
详解javascript replace高级用法
2019/02/17 Javascript
详解JSON和JSONP劫持以及解决方法
2019/03/08 Javascript
详解Vue 匿名、具名和作用域插槽的使用方法
2019/04/22 Javascript
javascript全局自定义鼠标右键菜单
2020/12/08 Javascript
Python中实现远程调用(RPC、RMI)简单例子
2014/04/28 Python
Python的多态性实例分析
2015/07/07 Python
Python 文本文件内容批量抽取实例
2018/12/10 Python
详解python做UI界面的方法
2019/02/27 Python
Python数据可视化:顶级绘图库plotly详解
2019/12/07 Python
opencv之为图像添加边界的方法示例
2019/12/26 Python
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
2020/01/20 Python
python如何解析复杂sql,实现数据库和表的提取的实例剖析
2020/05/15 Python
python 实现简易的记事本
2020/11/30 Python
德购商城:德国进口直邮商城
2017/06/13 全球购物
加拿大高尔夫超市:Golf Town
2018/01/12 全球购物
在求职信中如何凸显个人优势
2013/10/30 职场文书
优秀毕业生求职信范文
2014/01/02 职场文书
大学生学雷锋活动总结
2014/06/26 职场文书
给老婆的保证书
2015/01/16 职场文书
Python内置数据结构列表与元组示例详解
2021/08/04 Python
Element-ui Layout布局(Row和Col组件)的实现
2021/12/06 Vue.js
Android开发手册自定义Switch开关按钮控件
2022/06/10 Java/Android