|
本帖最后由 zhlgame 于 2011-11-25 08:53 编辑
本人在使用CI pagination类的时候,参考官网的user guide,但始终无法正常调试出一个最基本的分页器.
问题:不理解ci分页器的原理及与table类的协作方式.
解决:后来我参考了hex老大的教程,结合自己不断实践,终于理解了ci分页器的原理,分享出来供新手参考.
原理:通过url传递偏移量,在获得偏移量后,pagination类会自动进行处理.
我所遇到的问题,当时就是对offset的理解不深刻.
最简单的示例模型(英文官网user guide上的example,并没有提到如何与table类协作.)
PHP复制代码
public function list()
{
$this->load->library('pagination');//加载分页类
$config['base_url'] = base_url ().'index.php/main/list';//设置基地址
$config['uri_segment']=3;//设置url上第几段用于传递分页器的偏移量
$config['total_rows'] = $this->db->count_all('db_list');//自动从数据库中取得total_row信息
$config['per_page'] = 10; //每页显示的数据数量
$this->pagination->initialize($config); //设置完成分页器
$this->load->library('table');//加载表格类
$query=$this->db->get('my_list',$config['per_page'],$this->uri->segment(3));//这一行代码是关键!是pagination与table结合的关键.per_page告诉此次sql查询限制数量,uri_segment告诉此次查询的偏移量(从哪一行数据开始查询).
echo $this->table->generate($query);//显示查询到的数据
echo $this->pagination->create_links();//显示分页器
}
复制代码 |
|