bootstrap+thinkphp 動態(tài)化查詢

前端代碼

<!--搜索框開始-->
<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參數(shù)代碼

            queryParams: function queryParams(params) {   //設置查詢參數(shù)
                // 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

            //查詢某個月份創(chuàng)建的數(shù)據(jù)
            $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();
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容