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程序设计有所帮助。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Sistem pengendalian Windows ialah salah satu sistem pengendalian yang paling popular di dunia, dan versi baharunya Win11 telah menarik perhatian ramai. Dalam sistem Win11, mendapatkan hak pentadbir adalah operasi penting Hak pentadbir membolehkan pengguna melakukan lebih banyak operasi dan tetapan pada sistem. Artikel ini akan memperkenalkan secara terperinci cara mendapatkan kebenaran pentadbir dalam sistem Win11 dan cara mengurus kebenaran dengan berkesan. Dalam sistem Win11, hak pentadbir dibahagikan kepada dua jenis: pentadbir tempatan dan pentadbir domain. Pentadbir tempatan mempunyai hak pentadbiran penuh ke atas komputer tempatan

Penjelasan terperinci tentang operasi bahagi dalam OracleSQL Dalam OracleSQL, operasi bahagi ialah operasi matematik yang biasa dan penting, digunakan untuk mengira hasil pembahagian dua nombor. Bahagian sering digunakan dalam pertanyaan pangkalan data, jadi memahami operasi bahagian dan penggunaannya dalam OracleSQL adalah salah satu kemahiran penting untuk pembangun pangkalan data. Artikel ini akan membincangkan pengetahuan berkaitan operasi bahagian dalam OracleSQL secara terperinci dan menyediakan contoh kod khusus untuk rujukan pembaca. 1. Operasi bahagian dalam OracleSQL

Operator modulo (%) dalam PHP digunakan untuk mendapatkan baki pembahagian dua nombor. Dalam artikel ini, kami akan membincangkan peranan dan penggunaan pengendali modulo secara terperinci, dan memberikan contoh kod khusus untuk membantu pembaca memahami dengan lebih baik. 1. Peranan pengendali modulo Dalam matematik, apabila kita membahagi integer dengan integer lain, kita mendapat hasil bagi dan baki. Sebagai contoh, apabila kita membahagi 10 dengan 3, hasil bahagi ialah 3 dan selebihnya ialah 1. Operator modulo digunakan untuk mendapatkan baki ini. 2. Penggunaan operator modulo Dalam PHP, gunakan simbol % untuk mewakili modulus

Penjelasan terperinci tentang fungsi sistem panggilan sistem Linux() Panggilan sistem ialah bahagian yang sangat penting dalam sistem pengendalian Linux Ia menyediakan cara untuk berinteraksi dengan kernel sistem. Antaranya, fungsi system() adalah salah satu fungsi panggilan sistem yang biasa digunakan. Artikel ini akan memperkenalkan penggunaan fungsi system() secara terperinci dan memberikan contoh kod yang sepadan. Konsep Asas Panggilan Sistem Panggilan sistem ialah satu cara untuk atur cara pengguna berinteraksi dengan kernel sistem pengendalian. Program pengguna meminta sistem pengendalian dengan memanggil fungsi panggilan sistem

Fungsi ISNULL() dalam MySQL ialah fungsi yang digunakan untuk menentukan sama ada ungkapan atau lajur yang ditentukan adalah NULL. Ia mengembalikan nilai Boolean, 1 jika ungkapan itu NULL, 0 sebaliknya. Fungsi ISNULL() boleh digunakan dalam pernyataan SELECT atau untuk pertimbangan bersyarat dalam klausa WHERE. 1. Sintaks asas fungsi ISNULL(): ISNULL(ungkapan) di mana ungkapan ialah ungkapan untuk menentukan sama ada ia NULL atau

Penjelasan terperinci tentang perintah curl Linux Ringkasan: curl ialah alat baris arahan yang berkuasa yang digunakan untuk komunikasi data dengan pelayan. Artikel ini akan memperkenalkan penggunaan asas perintah curl dan memberikan contoh kod sebenar untuk membantu pembaca memahami dan menggunakan arahan dengan lebih baik. 1. Apakah curl? curl ialah alat baris arahan yang digunakan untuk menghantar dan menerima pelbagai permintaan rangkaian. Ia menyokong berbilang protokol, seperti HTTP, FTP, TELNET, dll., dan menyediakan fungsi yang kaya, seperti muat naik fail, muat turun fail, penghantaran data, proksi

MyBatis ialah rangka kerja lapisan kegigihan yang sangat baik yang menyokong operasi pangkalan data berdasarkan XML dan anotasi Ia mudah dan mudah digunakan, dan juga menyediakan mekanisme pemalam yang kaya. Antaranya, pemalam paging adalah salah satu pemalam yang lebih kerap digunakan. Artikel ini akan menyelidiki prinsip pemalam paging MyBatis dan menggambarkannya dengan contoh kod khusus. 1. Prinsip pemalam paging MyBatis sendiri tidak menyediakan fungsi paging asli, tetapi anda boleh menggunakan pemalam untuk melaksanakan pertanyaan paging. Prinsip pemalam paging adalah terutamanya untuk memintas MyBatis

Penggunaan Transform dalam CSS Sifat Transform CSS ialah alat yang sangat berkuasa yang boleh melakukan operasi seperti terjemahan, putaran, penskalaan dan menyengetkan elemen HTML. Ia boleh mengubah penampilan elemen secara mendadak dan menjadikan halaman web lebih kreatif dan dinamik. Dalam artikel ini, kami akan memperkenalkan pelbagai kegunaan Transform secara terperinci dan memberikan contoh kod khusus. 1. Terjemah (Terjemah) Terjemah merujuk kepada menggerakkan elemen pada jarak tertentu di sepanjang paksi-x dan paksi-y. Sintaksnya adalah seperti berikut: tran
