使用 thinkPHP 实现分页: 新建控制器LoginController.class.php 在 LoginController 中创建 index 方法:
Page 类 和 limit方法实现
1 2 3 4 5 6 7 8 9 10
| $data = M('userinfo'); $map['user_id'] = array('gt',0); $count = $data->where()->count();
$page = new Page($count,5); $show = $page->show(); $list = $User->where($map)->order('create_time')->limit($Page->firstRow.','.$Page->listRows)->select(); $this->assign('list',$list); $this->assign('page',$show); $this->display();
|
在对应的试图模板中编写如下代码:
1 2 3 4 5 6 7 8 9 10
| <table cellpadding=3 cellspacing=5> <volist name="list" id="vo"> <tr> <td >[ {$vo.user_id} ] {$vo.user_id} </td> </tr> </volist> <tr> </tr> </table> <div class="resultpage" style="width: 500px">{$page}</div>
|
这样在对应的视图就会显示相应的页码和数据信息;不过有点难看,不过别担心,稍后咱们在重新设置; 接下来咱们看第二种实现方式: 分页类和 page 方法的实现 将 index 方法中的代码替换成如下:
1 2 3 4 5 6 7 8 9 10
| $data = M('userinfo'); $map['user_id'] = array('gt',0); $list = $data->where($map)->order('user_id)->page($_GET['p'].',5')->select(); $this->assgin('list',$list); //引入分页模块 $count = $data->where($map)->count(); $page = new Page($count, '5'); $show = $page->show(); $this -> assgin('page',$show); $this->display();
|
修改分页显示效果 thinkphp 中的分页类 Page 提供了一个方法 setConfig 来修改分页栏的显示效果:
- header:头部描述信息,默认值 “条记录”
- prev:上一页描述信息,默认值是“上一页”
- next:下一页描述信息,默认值是“下一页”
- first:第一页描述信息,默认值是“第一页”
- last:最后一页描述信息,默认值是“最后一页”
- theme :分页主题描述信息, `` $page->lastSuffix = false; $page->setConfig(‘header’,’共**%TOTAL_ROW%**条记录’); $page->setConfig(‘prev’,’<’); $page->setConfig(‘next’,’>’); $page->setConfig(‘first’,’首页’); $page->setConfig(‘last’,’尾页’); $page->setConfig(‘theme’, ‘%FIRST%%UP_PAGE%%LINK_PAGE%%DOWN_PAGE%%END%%HEADER%’); 我们还可以使用
css 属性对分页栏的显示效果进行修改: 上面列表中的 header prev next 等等再视图模板中都是以元素的 class 值体现的,所以我们可以通过修改 class 的样式表定制显示效果,达到我们想要的效果:
1 2 3 4 5 6 7 8
| .resultpage{ background: black; color: honeydew; margin-right: 5px; margin-left: 5px; padding-left: 5px; padding-right: 5px; }
|
1 2 3 4 5
| .num { color: honeydew; padding-left: 5px; padding-right: 5px; } .current{color: red;} .prev{color: honeydew;} .next{color: honeydew;} .last{color: honeydew;} .first{color: honeydew;} a{text-decoration: none}
|