美文网首页
bootstrap+thinkphp 动态化查询

bootstrap+thinkphp 动态化查询

作者: haokeed | 来源:发表于2019-01-17 16:30 被阅读0次

前端代码

<!--搜索框开始-->
<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();

相关文章

网友评论

      本文标题:bootstrap+thinkphp 动态化查询

      本文链接:https://www.haomeiwen.com/subject/xxiidqtx.html