Zend Framework分页类用法详解
本文实例讲述了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程序设计有所帮助。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds



Le système d'exploitation Windows est l'un des systèmes d'exploitation les plus populaires au monde et sa nouvelle version Win11 a beaucoup attiré l'attention. Dans le système Win11, l'obtention des droits d'administrateur est une opération importante. Les droits d'administrateur permettent aux utilisateurs d'effectuer davantage d'opérations et de paramètres sur le système. Cet article présentera en détail comment obtenir les autorisations d'administrateur dans le système Win11 et comment gérer efficacement les autorisations. Dans le système Win11, les droits d'administrateur sont divisés en deux types : administrateur local et administrateur de domaine. Un administrateur local dispose de tous les droits d'administration sur l'ordinateur local

Explication détaillée de l'opération de division dans OracleSQL Dans OracleSQL, l'opération de division est une opération mathématique courante et importante, utilisée pour calculer le résultat de la division de deux nombres. La division est souvent utilisée dans les requêtes de bases de données. Comprendre le fonctionnement de la division et son utilisation dans OracleSQL est donc l'une des compétences essentielles des développeurs de bases de données. Cet article discutera en détail des connaissances pertinentes sur les opérations de division dans OracleSQL et fournira des exemples de code spécifiques pour référence aux lecteurs. 1. Opération de division dans OracleSQL

L'opérateur modulo (%) en PHP est utilisé pour obtenir le reste de la division de deux nombres. Dans cet article, nous discuterons en détail du rôle et de l'utilisation de l'opérateur modulo et fournirons des exemples de code spécifiques pour aider les lecteurs à mieux comprendre. 1. Le rôle de l'opérateur modulo En mathématiques, lorsqu'on divise un entier par un autre entier, on obtient un quotient et un reste. Par exemple, lorsque l’on divise 10 par 3, le quotient est 3 et le reste est 1. L'opérateur modulo est utilisé pour obtenir ce reste. 2. Utilisation de l'opérateur modulo En PHP, utilisez le symbole % pour représenter le module

Explication détaillée de la fonction d'appel système Linux system() L'appel système est une partie très importante du système d'exploitation Linux. Il fournit un moyen d'interagir avec le noyau système. Parmi elles, la fonction system() est l’une des fonctions d’appel système couramment utilisées. Cet article présentera en détail l’utilisation de la fonction system() et fournira des exemples de code correspondants. Concepts de base des appels système Les appels système sont un moyen permettant aux programmes utilisateur d'interagir avec le noyau du système d'exploitation. Les programmes utilisateur demandent au système d'exploitation en appelant des fonctions d'appel système

Explication détaillée de la commande curl de Linux Résumé : curl est un puissant outil de ligne de commande utilisé pour la communication de données avec le serveur. Cet article présentera l'utilisation de base de la commande curl et fournira des exemples de code réels pour aider les lecteurs à mieux comprendre et appliquer la commande. 1. Qu’est-ce que la boucle ? curl est un outil de ligne de commande utilisé pour envoyer et recevoir diverses requêtes réseau. Il prend en charge plusieurs protocoles, tels que HTTP, FTP, TELNET, etc., et fournit des fonctions riches, telles que le téléchargement de fichiers, le téléchargement de fichiers, la transmission de données, le proxy.

MyBatis est un excellent framework de couche de persistance. Il prend en charge les opérations de base de données basées sur XML et les annotations. Il est simple et facile à utiliser. Il fournit également un mécanisme de plug-in riche. Parmi eux, le plug-in de pagination est l'un des plug-ins les plus fréquemment utilisés. Cet article approfondira les principes du plug-in de pagination MyBatis et l'illustrera avec des exemples de code spécifiques. 1. Principe du plug-in de pagination MyBatis lui-même ne fournit pas de fonction de pagination native, mais vous pouvez utiliser des plug-ins pour implémenter des requêtes de pagination. Le principe du plug-in de pagination est principalement d'intercepter MyBatis

La fonction ISNULL() dans MySQL est une fonction utilisée pour déterminer si une expression ou une colonne spécifiée est NULL. Il renvoie une valeur booléenne, 1 si l'expression est NULL, 0 sinon. La fonction ISNULL() peut être utilisée dans l'instruction SELECT ou pour un jugement conditionnel dans la clause WHERE. 1. La syntaxe de base de la fonction ISNULL() : ISNULL(expression) où expression est l'expression permettant de déterminer si elle est NULL ou

Il existe deux manières les plus courantes de paginer des tableaux PHP : en utilisant la fonction array_slice() : calculez le nombre d'éléments à ignorer, puis extrayez la plage d'éléments spécifiée. Utilisez des itérateurs intégrés : implémentez l'interface Iterator et les méthodes rewind(), key(), current(), next() et valid() sont utilisées pour parcourir les éléments dans la plage spécifiée.
