zoukankan      html  css  js  c++  java
  • ThinkPHP分页链接支持数组参数的办法

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

  • 相关阅读:
    正则表达式匹配
    最长回文子串
    无重复字符的最长子串
    n个骰子的点数之和
    关于模型选择
    最小堆
    kmeans++
    Dijkstra 算法
    mapreduce中获取输入文件的路径
    mapreduce数据不平衡时的处理方法
  • 原文地址:https://www.cnblogs.com/imbin/p/3369918.html
Copyright © 2011-2022 走看看