bootstrap+thinkphp 动态化查询
2019-01-17 本文已影响0人
haokeed
前端代码
<!--搜索框开始-->
<form class="form-inline" id="ffSearch">
<div class="content clearfix m-b">
<div class="form-group">
<label class="control-label">下单日期:</label>
<input type="text" name="createtime" class="form-control" id="choose_date" lay-key="11">
</div>
<div class="form-group">
<button class="btn btn-primary" type="button" id="search">
<strong>搜 索</strong>
</button>
</div>
</div>
</form>
对应bootstrap中queryParams参数代码
queryParams: function queryParams(params) { //设置查询参数
// var param = {
// pageNumber: params.pageNumber,
// pageSize: params.pageSize,
// //temp["sort"] = params.sort; //排序列名
// //temp["sortOrder"] = params.order; //排位命令(desc,asc)
// };
var temp = $("#ffSearch").serializeJsonObject();
params["filter"] = temp;
params["pageNumber"] = (params.offset / params.limit) + 1;
params["pageSize"] = params.limit;
console.log(params);
//params= $.extend(params, temp);
return params;
},
核心处理php方法代码
/**
* 查询条件处理
* @param $filter array ["字段名"=>"abc"]
* @param $option array ["字段名"=>["op"=>"条件(like|between|=|eq等)","init"=>function($value){初始化对应的前端过来的值}]]
* @return array
*/
function selectCondition($filter, $option)
{
$where_filter = array_filter($filter);
$option = [
"createtime" => [
'op' => 'between',
'init' => function ($value) {
$stime = strtotime($value . '-01');
$etime = strtotime($value . '-01 +1 month') - 1;
return [$stime, $etime];
}],
];
$where = [];
foreach ($where_filter as $k => $v) {
$where[$k] = [
isset($option[$k]["op"]) ? $option[$k]["op"] : '=',
isset($option[$k]["init"]) ? $option[$k]["init"]($v) : $v,
];
}
return $where;
}
PHP后端样例代码 THINKPHP
//查询某个月份创建的数据
$where_filter = [
"createtime"=>'2019-01'
];
$where_option = [
"createtime" => [
'op' => 'between',
'init' => function ($value) {
$stime = strtotime($value . '-01');
$etime = strtotime($value . '-01 +1 month') - 1;
return [$stime, $etime];
}],
];
$where=selectCondition($where_filter,$where_option);
$list=PartnerLogMoney::where($where)->select();