æ们已ç»äºè§£äºå¦ä½è¿è¡æ°æ®æ¥è¯¢ï¼ä»å¤©æ们æ¥å¦ä¹ ä¸å¦ä½å¯¹æ°æ®è¿è¡å页以åæ¾ç¤ºã
è·åå页类
ThinkPHPæä¾äºæ°æ®å页çæ©å±ç±»åºPageï¼å¯ä»¥å¨
http://www.thinkphp.cn/extend/241.htmlä¸è½½ï¼æè
ä¸è½½å®æ¹çå®æ´æ©å±å
ï¼
http://www.thinkphp.cn/down/253.htmlï¼éé¢ä¹å·²ç»å
å«å页æ©å±ç±»äºãæ解ååçPage.class.phpæ¾å
¥ThinkPHP/Extend/Library/ORG/Util/ï¼å¦æ没æ请æå¨å建ï¼ç®å½ä¸é¢ã
å½ç¶ï¼æ©å±ç±»åºçä½ç½®å
¶å®æ¯è¾éæï¼ä½ ä¹å¯ä»¥æ¾å
¥é¡¹ç®çç±»åºç®å½ä¸é¢ï¼åºå«åªæ¯å¨äºä½ 导å
¥è·¯å¾çä¸åèå·²ã
å页æ¥è¯¢
å页类éè¦åæ¥è¯¢ç¸ç»åï¼æ们å¯ä»¥ä½¿ç¨ThinkPHPèªå¸¦çlimitæ¹æ³æè
pageæ¹æ³ï¼ç®çå°±æ¯ä¸ºäºè·åå½åå页çæ°æ®ï¼ä¹æå
è·åå®æ´æ°æ®ç¶åå端å页æ¾ç¤ºçæ¹æ³ï¼ä¸å¨æ¬ææè¿°å
容ä¸ï¼ä¹ä¸å»ºè®®ï¼ã使ç¨limitæ¹æ³æè
pageæ¹æ³æ¯åæ°æ®åºç±»åæ å
³çã
æ们é¦å
å¨æ°æ®åºéé¢å建ä¸ä¸ªthink_dataæ°æ®è¡¨ç¨äºæµè¯ï¼
CREATE TABLE IF NOT EXISTS `think_data` (
`id` smallint(4) unsigned NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`content` varchar(255) NOT NULL,
`create_time` int(11) unsigned NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
å¤å¶ä»£ç
è¦ä½¿ç¨å页æ¥è¯¢ï¼ä¸è¬æ¥è¯´éè¦è¿è¡ä¸¤æ¬¡æ¥è¯¢ï¼å³ç¬¬ä¸æ¬¡æ¥è¯¢å¾å°æ»¡è¶³æ¡ä»¶çæ»æ°æ®éï¼ç¶å第äºæ¬¡æ¥è¯¢å½åå页çæ°æ®ï¼è¿æ ·åçä½ç¨æ¯åè¯å页类å½åçæ°æ®æ»æ°ï¼ä»¥ä¾¿è®¡ç®çæçæ»é¡µæ°ï¼å¦æä½ çæ¾ç¤ºåªæ¯éè¦ä¸ä¸ç¿»é¡µçè¯ï¼å
¶å®æ»æ°æ¥è¯¢å¯ä»¥çç¥æè
è¿è¡ç¼åï¼ã
ä¸ä¸ªæ åçå页使ç¨ç¤ºä¾å¦ä¸ï¼
$Data = M('Data'); // å®ä¾åDataæ°æ®å¯¹è±¡
import('ORG.Util.Page');// 导å
¥å页类
$count = $Data->where($map)->count();// æ¥è¯¢æ»¡è¶³è¦æ±çæ»è®°å½æ° $map表示æ¥è¯¢æ¡ä»¶
$Page = new Page($count);// å®ä¾åå页类 ä¼ å
¥æ»è®°å½æ°
$show = $Page->show();// å页æ¾ç¤ºè¾åº
// è¿è¡å页æ°æ®æ¥è¯¢
$list = $Data->where($map)->order('create_time')->limit($Page->firstRow.','.$Page->listRows)->select();
$this->assign('list',$list);// èµå¼æ°æ®é
$this->assign('page',$show);// èµå¼å页è¾åº
$this->display(); // è¾åºæ¨¡æ¿
å¤å¶ä»£ç
å¦æ没æä»»ä½æ°æ®çè¯ï¼å页æ¾ç¤ºä¸ºç©ºç½ãæ以å¨è¿è¡æµè¯ä¹åï¼è¯·ç¡®ä¿ä½ çæ°æ®è¡¨éé¢æä¸å®çæ°æ®ï¼å¦åå¯è½çä¸å°å页çææãå¦æ使ç¨pageæ¹æ³æ¥è¯¢çè¯ï¼åå¯ä»¥æ¹æï¼
$Data = M('Data'); // å®ä¾åDataæ°æ®å¯¹è±¡
import('ORG.Util.Page');// 导å
¥å页类
$count = $Data->where($map)->count();// æ¥è¯¢æ»¡è¶³è¦æ±çæ»è®°å½æ°
$Page = new Page($count);// å®ä¾åå页类 ä¼ å
¥æ»è®°å½æ°
// è¿è¡å页æ°æ®æ¥è¯¢ 注æpageæ¹æ³çåæ°çåé¢é¨åæ¯å½åç页æ°ä½¿ç¨ $_GET[p]è·å
$nowPage = isset($_GET['p'])?$_GET['p']:1;
$list = $Data->where($map)->order('create_time')->page($nowPage.','.$Page->listRows)->select();
$show = $Page->show();// å页æ¾ç¤ºè¾åº
$this->assign('page',$show);// èµå¼å页è¾åº
$this->assign('list',$list);// èµå¼æ°æ®é
$this->display(); // è¾åºæ¨¡æ¿
å¤å¶ä»£ç
ç¶åï¼æ们å¨æ¨¡æ¿ä¸æ·»å å页è¾åºåéå³å¯ï¼
<table cellpadding=3 cellspacing=5>
<volist name="list" id="vo">
<tr>
<td >[ {$vo.create_time|date='Y-m-d H:i:s',###} ] {$vo.title} </td>
</tr>
</volist>
<tr>
</tr>
</table>
<div class="result page">{$page}</div>
å¤å¶ä»£ç
å¯ä»¥çå°å页è¾åºåªéè¦éç¨{$page}åéå¨æ¨¡æ¿ä¸è¾åºå³å¯ã
å页设置
设置å页åé
é»è®¤æ
åµä¸ï¼åé¡µä¼ å¼çåéæ¯pï¼çæçå页跳转å°åå¯è½ç±»ä¼¼äºï¼
http://serverName/index.php/Data/index/p/1http://serverName/index.php/Data/index/p/2å¤å¶ä»£ç
æ们å¯ä»¥é
ç½®VAR_PAGEé
ç½®åæ°æ¥æ¹åï¼
'VAR_PAGE'=>'page'
å¤å¶ä»£ç
åå页å°ååæï¼
http://serverName/index.php/Data/index/page/1http://serverName/index.php/Data/index/page/1å¤å¶ä»£ç
设置æ¯é¡µè®°å½æ°
é»è®¤çæ
åµä¸ï¼å页æ¾ç¤ºæ¯é¡µä¼æ¾ç¤º20æ¡æ°æ®ï¼å¦æä½ å¸ææ¹åæ¯é¡µæ¾ç¤ºçæ°æ®éçè¯ï¼å®ä¾åå页类çæ¶åå¯ä»¥ä¼ 人第äºä¸ªåæ°å³å¯ï¼
$Page = new Page($count,5);// å®ä¾åå页类 ä¼ å
¥æ»è®°å½æ°å¹¶ä¸æ¯é¡µæ¾ç¤º5æ¡è®°å½
å¤å¶ä»£ç
ç±äºæ¥è¯¢æ¹æ³ä¸æ们使ç¨äº$Page->listRowså±æ§ï¼æ以æ éæ´æ¹ï¼ä½å¦æä½ æ¯ç´æ¥å¨æ¥è¯¢æ¹æ³ä¸ä½¿ç¨æ°å请记å¾ä¸èµ·æ´æ¹ã
ä¸é¢æ¯å®æ¹çå页示ä¾çæ¾ç¤ºææï¼
ä¼ å
¥å页æ¡ä»¶
é»è®¤æ
åµä¸ï¼å页类ä¼èªå¨è·åå½å页é¢çPOSTï¼ä¼å
ï¼æè
GETåéä½ä¸ºå页跳转çä¼ å¼ï¼å¦æéè¦æå®ä¼ å
¥å½åå页跳转çåæ°ï¼å°±å¯ä»¥éè¿è®¾ç½®parameterå±æ§ï¼parameterå±æ§æ¯æ2ç§æ¹å¼ä¼ å¼ï¼å符串åæ°ç»ãå符串éç¨var1=val1&var2=val2...çæ ¼å¼ï¼ä¾å¦ï¼
foreach($map as $key=>$val) {
$Page->parameter .= "$key=".urlencode($val).'&';
}
å¤å¶ä»£ç
æè
ç´æ¥ä¼ å
¥æ°ç»ï¼
$Page->parameter = array_map('urlencode',$map);
å¤å¶ä»£ç
ç±äºå
é¨è°ç¨äºUå½æ°ï¼å页类æç»çæçå页跳转é¾æ¥ä¼æ ¹æ®å½åçURL设置èªå¨çæåå½åURL模å¼ä¸è´çå°åï¼æ以æ éæ
å¿å页é¾æ¥çåæ°å½±åURLå°åã
å页路ç±æ¯æ
å¦æä½ çå页跳转é¾æ¥å°åéç¨äºè·¯ç±ï¼é£ä¹å¯ä»¥éè¿è®¾ç½®urlåæ°ï¼ä¾å¦ï¼å设æ们çå页URLå°åæ ¼å¼æ¯ï¼
http://serverName/data/index/1http://serverName/data/index/2http://serverName/data/index/3å¤å¶ä»£ç
è¿æ ·çURLè·¯ç±å°åï¼é£ä¹æ们就å¯ä»¥è®¾ç½®
$Page->url = 'data/index';
å¤å¶ä»£ç
设置åï¼å页类çé¾æ¥å°åä¼èªå¨çæä¸é¢çURLæ ¼å¼å°åã
注æï¼urlåæ°åparameter åæ¶ä½¿ç¨çè¯ï¼åè
æ æã
设置æ¾ç¤ºç页æ°
å¯ä»¥å¨å®ä¾åå页类ä¹åï¼è¿è¡ç¸å
³å±æ§ç设置ãé»è®¤æ
åµä¸ï¼é¡µé¢æ¾ç¤ºç页æ°æ¯5ï¼æ们å¯ä»¥ä¿®æ¹ï¼
$Page->rollPage = 3;
å¤å¶ä»£ç
è¿æ ·ï¼é¡µé¢ä¸åªè½åæ¶çå°3个å页
å页æ¾ç¤ºå®å¶
ä¸é¢è®²çæ¯å页çåæ°è®¾ç½®ï¼ä¸é¢è®²ä¸å¦ä½å¯¹å页æ¾ç¤ºææï¼å
æ¬æ ·å¼ï¼è¿è¡è®¾ç½®ãé»è®¤çå页ææå¯è½ä¸è½æ»¡è¶³ææçè¦æ±ï¼å页类æä¾äºä¸ä¸ªsetConfigæ¹æ³æ¥ä¿®æ¹é»è®¤çä¸äºè®¾ç½®ãä¾å¦ï¼
$page->setConfig('header','个ä¼å');
å¤å¶ä»£ç
setConfigæ¹æ³æ¯æçå±æ§å
æ¬ï¼
header 头é¨æè¿°ä¿¡æ¯ï¼é»è®¤å¼ âæ¡è®°å½â
prev ä¸ä¸é¡µæè¿°ä¿¡æ¯ï¼é»è®¤å¼æ¯âä¸ä¸é¡µâ
next ä¸ä¸é¡µæè¿°ä¿¡æ¯ï¼é»è®¤å¼æ¯âä¸ä¸é¡µâ
first 第ä¸é¡µæè¿°ä¿¡æ¯ï¼é»è®¤å¼æ¯â第ä¸é¡µâ
last æåä¸é¡µæè¿°ä¿¡æ¯ï¼é»è®¤å¼æ¯âæåä¸é¡µâ
theme å页主é¢æè¿°ä¿¡æ¯ï¼å
æ¬äºä¸é¢ææå
ç´ çç»å ï¼è®¾ç½®è¯¥å±æ§å¯ä»¥æ¹åå页çå个åå
çæ¾ç¤ºä½ç½®ï¼é»è®¤å¼æ¯
"%totalRow% %header% %nowPage%/%totalPage% 页 %upPage% %downPage% %first% %prePage% %linkPage% %nextPage% %end%"
éè¿setConfig设置以ä¸å±æ§å¯ä»¥å®ç¾çå®å¶åºä½ çå页æ¾ç¤ºé£æ ¼ã