对于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' , )) |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。