ThinkPHP分页链接支持数组参数的办法

来源:互联网 发布:中国地图编辑软件 编辑:程序博客网 时间:2024/05/18 05:45

这几天在用ThinkPHP做系统,搜索页有个数组参数提交

<input class="params_t" name="t[]" type="checkbox" value="email"><input class="params_t" name="t[]" type="checkbox" value="name">

提交后的URL是

t是个多选项 checkbox

/search.html?q=30&t%5B%5D=a&t%5B%5D=b&pagesize=20

有多页数据的时候

用ThinkPHP自带的分页生成器 ORG.Util.Page

生成的第2页后的链接是

/search/q/30/t//pagesize/20/p/2.html

t 参数的值丢失了,找了下解决办法:

修改 ThinkPHP/Common/functions.php 的 U 函数:

第 258行


if(!empty($vars)) { // 添加参数            foreach ($vars as $var => $val){                if('' !== trim($val))   $url .= $depr . $var . $depr . urlencode(is_array($val) ? join(',',$val):$val);            }                        }

在 Action 获取 t 参数的地方再修改下代码:

$t = I('get.t');if(!is_array($t) && strpos($t,',') !== false) $t = explode(',',$t);


OK, 搞定

第2页后的链接变成

/search/q/30/t/a,b/pagesize/20/p/2.html