tp3.2.3实现支持点击排序
假设: Admin/Home/Controller/BaseController.class.php是一个基础控制器 $current_params和$in是两个在Admin/Home/Controller/BaseController.class.php中用来保存接收参数的属性,并且已经在构造函数中对其赋值 Admin/Tpl/Index/footer.html是布局中的公共部分 Public/Model/BaseModel.class.php是公共模型 请求中用来表示模块,控制器,操作的参数名称分别为:m,c,a #searchForm和#excelForm分别为条件搜索form和excel表单导出请求提交时用来临时保存和传递筛选条件的form 全局改动 Admin/Home/Controller/BaseController.class.php改动: 新增protected $current_params属性 _initialize方法尾部新增以下代码(用于处理传入的有效参数): unset($this->current_params['m']); unset($this->current_params['c']); unset($this->current_params['a']); $this->assign('page_url', U(CONTROLLER_NAME.'/'.ACTION_NAME,$this->current_params)); 控制器尾部新增以下方法: /* * todo:处理排序请求 * @param $sort string 用来mysql排序的字符串 * @param $column string 用来指定排序字段名称 * @param $value int 排序值,1:顺序;2:倒序 * @param $table string 需要排序字段在当前sql语句中表的别名 * @return string 返回处理后的$order * */ protected function assembleSort($sort,$column,$value,$table){ $order = urldecode($sort); $v_sort[$column] = $value == 1 ? 2 : 1; $v_sort['param_sort'] = $sort; $v_sort['param_column'] = $column; $v_sort['param_value'] = $v_sort[$column]; $v_sort['param_table'] = $table; $this->assign('sort', $v_sort); return $order; } Admin/Tpl/Index/footer.html改动: 在</body>标签前新增以下代码: html(保存当前页面并携带除排序相关参数的url): ...