本文实例讲述了Zend Framework分页类用法。分享给大家供大家参考,具体如下: 1、分页类Pagination.php,最好是把这个类放在Zend目录下 class XY_Pagination{ private $_navigationItemCount = 10; //导航栏显示导航总页数 private $_pageSize = null; //每
本文实例讲述了Zend Framework分页类用法。分享给大家供大家参考,具体如下:
1、分页类Pagination.php,最好是把这个类放在Zend目录下
class XY_Pagination { private $_navigationItemCount = 10; //导航栏显示导航总页数 private $_pageSize = null; //每页项目数 private $_align = "right"; //导航栏显示位置 private $_itemCount = null; //总项目数 private $_pageCount = null; //总页数 private $_currentPage = null; //当前页 private $_front = null; //前端控制器 private $_PageParaName = "page"; //页面参数名称 private $_firstPageString = "|<<"; //导航栏中第一页显示的字符 private $_nextPageString = ">>"; //导航栏中前一页显示的字符 private $_previousPageString = "<<"; //导航栏中后一页显示的字符 private $_lastPageString = ">>|"; //导航栏中最后一页显示的字符 private $_splitString = " | "; //页数字间的间隔符 / public function __construct($itemCount, $pageSize) { if(!is_numeric($itemCount) || (!is_numeric($pageSize))) throw new Exception("Pagination Error:not Number"); $this->_itemCount = $itemCount; $this->_pageSize = $pageSize; $this->_front = Zend_Controller_Front::getInstance(); $this->_pageCount = ceil($itemCount/$pageSize); //总页数 $page = $this->_front->getRequest()->getParam($this->_PageParaName); if(empty($page) || (!is_numeric($page))) //为空或不是数字,设置当前页为1 { $this->_currentPage = 1; } else { if($page < 1) $page = 1; if($page > $this->_pageCount) $page = $this->_pageCount; $this->_currentPage = $page; } } /** * 返回当前页 * @param int 当前页 */ public function getCurrentPage() { return $this->_currentPage; } /** * 返回导航栏目 * @return string 导航html class="PageNavigation" */ public function getNavigation() { $navigation = ''; $pageCote = ceil($this->_currentPage / ($this->_navigationItemCount - 1)) - 1; //当前页处于第几栏分页 $pageCoteCount = ceil($this->_pageCount / ($this->_navigationItemCount - 1)); //总分页栏 $pageStart = $pageCote * ($this->_navigationItemCount -1) + 1; //分页栏中起始页 $pageEnd = $pageStart + $this->_navigationItemCount - 1; //分页栏中终止页 if($this->_pageCount < $pageEnd) { $pageEnd = $this->_pageCount; } $navigation .= "总共:{$this->_itemCount}条 {$this->_pageCount}页\n"; if($pageCote > 0) //首页导航 { $navigation .= '$this->_firstPageString "; } if($this->_currentPage != 1) //上一页导航 { $navigation .= '$this->_previousPageString "; } while ($pageStart <= $pageEnd) //构造数字导航区 { if($pageStart == $this->_currentPage) { $navigation .= "$pageStart".$this->_splitString; } else { $navigation .= '$pageStart".$this->_splitString; } $pageStart++; } if($this->_currentPage != $this->_pageCount) //下一页导航 { $navigation .= ' $this->_nextPageString "; } if($pageCote < $pageCoteCount-1) //未页导航 { $navigation .= '$this->_lastPageString "; } //添加直接导航框 //$navigation .= ''; //2008年8月27号补充输入非正确页码后出现的错误——begin $navigation .= ' '; //2008年8月27号补充输入非正确页码后出现的错误——end $navigation .= " "; return $navigation; } /** * 取得导航栏显示导航总页数 * * @return int 导航栏显示导航总页数 */ public function getNavigationItemCount() { return $this->_navigationItemCount; } /** * 设置导航栏显示导航总页数 * * @param int $navigationCount:导航栏显示导航总页数 */ public function setNavigationItemCoun($navigationCount) { if(is_numeric($navigationCount)) { $this->_navigationItemCount = $navigationCount; } } /** * 设置首页显示字符 * @param string $firstPageString 首页显示字符 */ public function setFirstPageString($firstPageString) { $this->_firstPageString = $firstPageString; } /** * 设置上一页导航显示字符 * @param string $previousPageString:上一页显示字符 */ public function setPreviousPageString($previousPageString) { $this->_previousPageString = $previousPageString; } /** * 设置下一页导航显示字符 * @param string $nextPageString:下一页显示字符 */ public function setNextPageString($nextPageString) { $this->_nextPageString = $nextPageString; } /** * 设置未页导航显示字符 * @param string $nextPageString:未页显示字符 */ public function setLastPageString($lastPageString) { $this->_lastPageString = $lastPageString; } /** * 设置导航字符显示位置 * @param string $align:导航位置 */ public function setAlign($align) { $align = strtolower($align); if($align == "center") { $this->_align = "center"; }elseif($align == "right") { $this->_align = "right"; }else { $this->_align = "left"; } } /** * 设置页面参数名称 * @param string $pageParamName:页面参数名称 */ public function setPageParamName($pageParamName) { $this->_PageParaName = $pageParamName; } /** * 获取页面参数名称 * @return string 页面参数名称 */ public function getPageParamName() { return $this->_PageParaName; } /** * 生成导航链接地址 * @param int $targetPage:导航页 * @return string 链接目标地址 */ private function createHref($targetPage = null) { $params = $this->_front->getRequest()->getParams(); $module = $params["module"]; $controller = $params["controller"]; $action = $params["action"]; $targetUrl = $this->_front->getBaseUrl()."/$module/$controller/$action"; foreach ($params as $key => $value) { if($key != "controller" && $key != "module" && $key != "action" && $key != $this->_PageParaName) { $targetUrl .= "/$key/$value"; } } if(isset($targetPage)) //指定目标页 $targetUrl .= "/$this->_PageParaName/$targetPage"; else $targetUrl .= "/$this->_PageParaName/"; return $targetUrl; } } ?>
2、在indexController.php中的indexController Function里面调用:
require_once 'Zend/Pagination.php'; $Users = new Users(); //$rows = $Users->getAdapter()->fetchOne("select count(*) from users where `role`!='admin'"); //recorde count $rows = $Users->fetchAll("`role`!='admin'")->count(); //查询记录总数 $rowsPerPage = 5; //perPage recordes $curPage = 1; if($this->_request->getParam('page')) { $curPage = $this->_request->getParam('page'); } //search data and display $this->view->users = $Users->fetchAll("`role`!='admin'",'id desc',$rowsPerPage,($curPage-1)*$rowsPerPage)->toArray(); $Pager = new XY_Pagination($rows,$rowsPerPage); $this->view->pagebar = $Pager->getNavigation();
3、在view中调用分页更简单了。
pagebar?>
或者在smarty模板情况下
更多关于zend相关内容感兴趣的读者可查看本站专题:《Zend FrameWork框架入门教程》、《php优秀开发框架总结》、《Yii框架入门及常用技巧总结》、《ThinkPHP入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Zend Framework框架的PHP程序设计有所帮助。

.NETFramework4是开发人员和最终用户在Windows上运行最新版本的应用程序所必需的。但是,在下载安装.NETFramework4时,许多用户抱怨安装程序在中途停止,显示以下错误消息-“ .NETFramework4hasnotbeeninstalledbecauseDownloadfailedwitherrorcode0x800c0006 ”。在您的设备上安装.NETFramework4时,如果您也在体验它,那么您就来对了地方

每当您的Windows11或Windows10PC出现升级或更新问题时,您通常会看到一个错误代码,指示故障背后的实际原因。但是,有时,升级或更新失败可能不会显示错误代码,这时就会出现混淆。有了方便的错误代码,您就可以确切地知道问题出在哪里,因此您可以尝试修复。但是由于没有出现错误代码,因此识别问题并解决它变得极具挑战性。这会占用您大量时间来简单地找出错误背后的原因。在这种情况下,您可以尝试使用Microsoft提供的名为SetupDiag的专用工具,该工具可帮助您轻松识别错误背后的真

CakePHP是一个强大的PHP框架,为开发人员提供了很多有用的工具和功能。其中之一是分页,它可以帮助我们将大量数据分成几页,从而简化浏览和操作。默认情况下,CakePHP提供了一些基本的分页方法,但有时你可能需要创建一些自定义的分页方法。这篇文章将向您展示如何在CakePHP中创建自定义分页。步骤1:创建自定义分页类首先,我们需要创建一个自定义分页类。这个
![SCNotification 已停止工作 [修复它的 5 个步骤]](https://img.php.cn/upload/article/000/887/227/168433050522031.png)
作为Windows用户,您很可能会在每次启动计算机时遇到SCNotification已停止工作错误。SCNotification.exe是一个微软系统通知文件,由于权限错误和点网故障等原因,每次启动PC时都会崩溃。此错误也以其问题事件名称而闻名。因此,您可能不会将其视为SCNotification已停止工作,而是将其视为错误clr20r3。在本文中,我们将探讨您需要采取的所有步骤来修复SCNotification已停止工作,以免它再次困扰您。什么是SCNotification.e

已安装Microsoft.NET版本4.5.2、4.6或4.6.1的MicrosoftWindows用户如果希望Microsoft将来通过产品更新支持该框架,则必须安装较新版本的Microsoft框架。据微软称,这三个框架都将在2022年4月26日停止支持。支持日期结束后,产品将不会收到“安全修复或技术支持”。大多数家庭设备通过Windows更新保持最新。这些设备已经安装了较新版本的框架,例如.NETFramework4.8。未自动更新的设备可能

随着数据的不断增长,表格显示变得更加困难。大多数情况下,表格中的数据量过大,导致表格在加载时变得缓慢,而且用户需要不断地浏览页面才能找到自己想要的数据。本文将介绍如何使用JavaScript实现表格数据的分页显示,让用户更容易找到自己想要的数据。一、动态创建表格为了使分页功能更加可控,需要动态创建表格。在HTML页面中,添加一个类似于下面的table元素。

自我们谈论影响安装KB5012643forWindows11的用户的新安全模式错误以来已经过去了一周。这个讨厌的问题并没有出现在微软在发布当天发布的已知问题列表中,因此让所有人都感到意外。好吧,就在您认为情况不会变得更糟的时候,微软为安装此累积更新的用户投下了另一颗炸弹。Windows11Build22000.652导致更多问题因此,这家科技公司警告Windows11用户,他们在启动和使用某些.NETFramework3.5应用程序时可能会遇到问题。听起来很熟悉?不过请不要惊

VUE3开发入门教程:使用组件实现分页分页是一个常见的需求,因为在实际开发中,我们往往需要将大量的数据分成若干页以展示给用户。在VUE3开发中,可以通过使用组件实现分页功能,本文将介绍如何使用组件实现简单的分页功能。1.创建组件首先,我们需要创建一个分页组件,使用“vuecreate”命令创建VUE项目,并在src/components目录下创建Pagin


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

Dreamweaver Mac version
Visual web development tools

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

Atom editor mac version download
The most popular open source editor

SublimeText3 Linux new version
SublimeText3 Linux latest version
