用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4402|回复: 5
收起左侧

[讨论/交流] 分享一个带参数分页方法

[复制链接]
发表于 2010-8-18 20:13:38 | 显示全部楼层 |阅读模式
我是初学者,刚被带参数分页折腾的头大了,也不想改CI系统文件,也不想用SESSION,用GET,还要改CONFIG,都头大,无奈之下折腾个办法出来:
页面:
<form method="post">
<input name="a" />
<input name="b" />
<select name="c"></select>
<select name="d"></select>
<submit>
</form>
控制器
$a    = $this->input->post('a');
$b    = $this->input->post('b');
$c    = $this->input->post('c');
$d    = $this->input->post('d');
$submit     = $this->input->post('submit');
if(!empty($submit)){redirect('控制器/方法/'.$a.'/'.$b.'/'.$c.'/'.$d);}
$data['a'] = $this->uri->segment(3);
$data['b'] = $this->uri->segment(4);
$data['c'] = $this->uri->segment(5);
$data['d'] = $this->uri->segment(6);
//也就是提交后马上回提交页,将POST来的数据转换成CI的路径
if(uri_string() == '/控制器/方法/'){
$baseurl = '控制器/方法/0/0/0/0/';        //默认没提交前
}else{
$baseurl = '控制器/方法/'.$data['a'].'/'.$data['b'].'/'.$data['c'].'/'.$data['d'].'/'; //数据提交后
}
$config['uri_segment'] = 7;
数据
$a = $this->uri->segment(3);
$b = $this->uri->segment(4);
$c = $this->uri->segment(5);
$d = $this->uri->segment(6);
数据这部份自己加个 if(){} 判断下就可以了。
发表于 2010-8-18 22:15:04 | 显示全部楼层
我觉得还是用 GET 传参最好,因为 Google 就是这么做的,学习他错不了。

PS: 用 CI 而不改,那还不如用 Zend Framework
发表于 2010-8-19 00:25:14 | 显示全部楼层
本帖最后由 visvoy 于 2010-8-19 00:26 编辑

用serialize+base64_encode+strtr可以将全部搜索条件转成1个字符串,放在$_GET里面
改一下,此$_GET指的是URI segment

评分

参与人数 1威望 +1 收起 理由
lamtin + 1 我很赞同

查看全部评分

发表于 2010-8-19 19:09:14 | 显示全部楼层
支持GET,方便好用,也没什么不雅
 楼主| 发表于 2010-8-19 22:14:39 | 显示全部楼层
版主的方法不错哈
只怪自己对PHP函数了解不多啊。
发表于 2010-8-25 19:06:48 | 显示全部楼层
学习一下啊!

本版积分规则