这几天在用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