對于thinkphp分頁的實現效果,兩種調用方法,一種調用公共函數中的函數方法(參考http://www.cnblogs.com/tianguook/p/4326613.html),一種是在模型中書寫分頁的方法
1、在公共函數Application/Common/Common/function.php中書寫:
1
2
3
4
5
6
7
8
9
10
11
|
function getpage( $count , $pagesize =10) { $page = new Think\Page( $count , $pagesize ); $page ->setConfig( 'header' , '<li>共<b>%TOTAL_ROW%</b>條記錄 <b>%NOW_PAGE%</b>/<b>%TOTAL_PAGE%</b>頁</li>' ); $page ->setConfig( 'prev' , '上一頁' ); $page ->setConfig( 'next' , '下一頁' ); $page ->setConfig( 'last' , '末頁' ); $page ->setConfig( 'first' , '首頁' ); $page ->setConfig( 'theme' , '%FIRST%%UP_PAGE%%LINK_PAGE%%DOWN_PAGE%%END%%HEADER%' ); $page ->lastSuffix=false; //最后一頁不顯示總頁數 return $page ; } |
在控制器PageController.class.php中調用
1
2
3
4
5
6
7
8
9
10
11
12
13
|
namespace Home\Controller; use Think\Controller; class PageController extends Controller { public function index() { $m =M( 'user' ); $count = $m -> count (); $page = getpage( $count ,8); //Common/function.php中分頁 $list = $m ->limit( $page ->firstRow, $page ->listRows)->select(); $this ->assign( 'list' , $list ); //賦值數據集 $this ->assign( 'page' , $page ->show()); //賦值分頁輸出 $this ->display(); } } |
在視圖index/index.html中顯示
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
<!DOCTYPE html> < html > < head > < title ></ title > < meta http-equiv = "Content-Type" content = "text/html; charset=UTF-8" > < link href = "__CSS__/page.css" rel = "stylesheet" /> </ head > < body > < div > < volist name = "list" id = "vo" > < notemply name = "$vo['name']" > 用戶名:< p >{$vo['name']}</ p > </ notemply > </ volist > < div > < table > < tr > < td colspan = "3" bgcolor = "#FFFFFF" > < div class = "pages" >{$page} </ div > </ td > </ tr > </ table > </ div > </ div > </ body > </ html > |
樣式的書寫page.css
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
.pages a,.pages span { display :inline- block ; padding : 2px 5px ; margin : 0 1px ; border : 1px solid #f0f0f0 ; -webkit-border-radius: 3px ; -moz-border-radius: 3px ; border-radius: 3px ; } .pages a,.pages li { display :inline- block ; list-style : none ; text-decoration : none ; color : #58A0D3 ; } .pages a.first,.pages a.prev,.pages a.next,.pages a.end{ margin : 0 ; } .pages a:hover{ border-color : #50A8E6 ; } .pages span.current{ background : #50A8E6 ; color : #FFF ; font-weight : 700 ; border-color : #50A8E6 ; } |
2、在模板UserModel.class.php中書寫分頁函數
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
namespace Home\Model; use Think\Model; class UserModel extends Model { public function getPage() { $page =I( 'p' ,0, 'int' ); $limit =8; $data = $this ->page( $page , $limit )->select(); $count = $this -> count (); $Page = new \Think\Page( $count , $limit ); $Page ->lastSuffix=false; //是否顯示總頁數 $Page ->setConfig( 'header' , '<li>共<b>%TOTAL_ROW%</b>幅圖片 每頁<b>' . $limit . '</b>幅 <b>%NOW_PAGE%</b>/<b>%TOTAL_PAGE%</b>頁</li>' ); $Page ->setConfig( 'prev' , '上一頁' ); $Page ->setConfig( 'next' , '下一頁' ); $Page ->setConfig( 'last' , '末頁' ); $Page ->setConfig( 'first' , '首頁' ); $Page ->setConfig( 'theme' , '%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%' ); $show = $Page ->show(); return array ( 'list' => $data , 'page' => $show ); } } |
控制器PageController.class.php中調用
1
2
3
4
5
6
7
8
9
10
|
namespace Home\Controller; use Think\Controller; class PageController extends Controller { public function index() { $m =D( 'Upload_img' ); $list = $m ->getPage(); //model中分頁 $this ->assign( 'list' , $list ); //賦值數據集 $this ->display(); } } |
視圖顯示index/index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
<!DOCTYPE html> < html > < head > < title ></ title > < meta http-equiv = "Content-Type" content = "text/html; charset=UTF-8" > < link href = "__CSS__/page.css" rel = "stylesheet" /> </ head > < body > < div > < volist name = "list.list" id = "vo" > < notemply name = "$vo['name']" > 用戶名:< p >{$vo['name']} </ notemply > </ volist > < div > < table > < tr > < td colspan = "3" bgcolor = "#FFFFFF" > < div class = "pages" >{$list.page} </ div > </ td > </ tr > </ table > </ div > </ div > </ body > </ html > |
分頁的樣式與第1中公共方法中page.css中樣式相同
以上<link href="__CSS__/page.css" rel="stylesheet" />引用文件常量"__CSS__"在公共配置文件中配置:
1
2
3
|
return array ( 'TMPL_PARSE_STRING' => array ( '__CSS__' =>__ROOT__. '/Public/Css' , )) |
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。