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