kazaff 发表于 2009-9-9 11:30:42

关于CI的分页类的参数疑问

今天练习CI的分页类,发现好像和我想的不太一样,看代码:
$this->load->helper('url');
$this->load->library('pagination');
$config['base_url']=site_url('my_msg/index/').'/';
$config['total_rows']=$query->num_rows();
$config['per_page']=2;
$this->pagination->initialize($config);
echo $this->pagination->create_links();

注意看$config['per_page']=2;这个参数,$query->num_rows();的值是7,也就是说总数为7,那么$config['per_page']=2;的话,应该有4页,最后一页是1条记录!然后看链接:
< 1 2 3 4 >
URL地址分别为:
1:http://192.168.1.1/my_msg/index.php/my_msg/index/
2:http://192.168.1.1/my_msg/index.php/my_msg/index/2
3:http://192.168.1.1/my_msg/index.php/my_msg/index/4
4:http://192.168.1.1/my_msg/index.php/my_msg/index/6

我晕,URL里最后一段的值代表的竟然不是页数的值,而是sql里limit的参数!仔细想想这么传参也不无道理,只是感觉别扭!大家是怎么处理的啊?

kc80cn 发表于 2009-9-9 12:16:42

我也发现这个地方了,<1 2 3 4 >是页数,当你把鼠标放在数字上,它会给一个连接,4 对应的就是 6。根据你的设置$config['per_page'],4 每次对应的数会不一样。

我第一次弄的时候,看了好长时间,也想了好长时间。习惯就好了。

我到是有一个办法,那就是。。。不要把<1 2 3 4> 看成数字。。。。。把它们看成字母。。。<A B C D>
这样看一下就不会太别扭了。。。
A:http://192.168.1.1/my_msg/index.php/my_msg/index/
B:http://192.168.1.1/my_msg/index.php/my_msg/index/2
C:http://192.168.1.1/my_msg/index.php/my_msg/index/4
D:http://192.168.1.1/my_msg/index.php/my_msg/index/6

Hex 发表于 2009-9-9 12:22:33

CI 的分页类传的就是偏移量,不是页数,CI 的分页类就是这么设计的,你如果不喜欢,可以自己扩展或修改。

bingshao 发表于 2009-9-9 13:26:10

深有同感啊。

wrz 发表于 2009-9-9 13:29:23

深有同感啊。{:3_49:}

wrz 发表于 2009-9-9 13:29:43

怎么样获取当前页啊?????? 和总的多少页

Hex 发表于 2009-9-9 14:17:07

当前页?你在哪里取?

kazaff 发表于 2009-9-9 14:24:33

2# kc80cn

朋友,你很诙谐啊~

kazaff 发表于 2009-9-9 14:25:36

6# wrz

我理解的这些都是有分页类自动算的,你不需要管!除非你自己写分页,那样的话你可以根据你的实际情况来直接设定

Hex 发表于 2009-9-9 14:40:25

由偏移量换算成页数很简单吧?有总数有偏移量,除一下不就可以了吗?
页: [1] 2
查看完整版本: 关于CI的分页类的参数疑问