TP5 自带分页搜索功能实现

HTML部分:

<form class="layui-form" >
                        <div class="layui-form-item">
                            <label class="layui-form-label">搜索:</label>
                            <div class="layui-input-inline">
                                <select name="search_key" id="sk">
                                    <option value="room_name" selected="">按群名称搜索</option>
                                    <option value="room_id">按群号码搜索</option>
                                </select>
                            </div>
                            <div class="layui-inline">
                                <input class="layui-input" name="search_val" id="sv" required autocomplete="off">
                            </div>
                            <input type="button" class="layui-btn" id="search" value="搜索" > <!--data-type="reload" -->
                            <span id="fzk"></span>
                        </div>
                    </form>
ajax提交

JS部分:

//搜索
        $("#search").click(function(){
            if($("#sv").val().trim() == ''){
                layer.alert("搜索条件不能为空");
                return false;
            }
            $.get(
                    "{:url('index/rooms_chat')}",
                    {k:$("#sk").val(),v:$("#sv").val()},
                    function(d){
//                        console.log(d);
                        if(d == "暂无数据"){
                            $("#roomList").html("暂无数据");
                        }else{
                            $('html').html(d);
                        }
                    }
            );
        });

PHP 方法:

public function rooms_chat(Request $request){
        //获取所有的群组
        if(null != $request->get('v')){  //带搜索条件的页面
            $k = $request->get('k');
            $v = $request->get('v');
            $rooms = Db::name('room')
                ->field("room_id,room_name ,r_id ")
                ->order('r_id','desc')
                ->where($k,'like',"%".$v."%")
                ->paginate(3,false,['query'=>$request->param()]);
            if($rooms->isEmpty()){
                return view('rooms_chat',['rooms'=>"暂无数据"]);
            }
            return view('rooms_chat',['rooms'=>$rooms,'page'=>$rooms]);
        }else{  //默认打开页面
            $rooms = Db::name('room')
                ->field("`room_id`,`room_name` ,r_id ")
                ->paginate(3);
            return view('rooms_chat',['rooms'=>$rooms,'page'=>$rooms]);
         }
    }

确保搜索条件分页条件都不会遗漏的关键:  paginate(3,false,['query'=>$request->param()]);

还有分页的CSS样式:

/*分页样式*/
    .pagination{text-align:center;margin-top:20px;margin-bottom: 20px;}
    .pagination li{margin:0px 10px; border:1px solid #e6e6e6;padding: 3px 8px;display: inline-block;}
    .pagination .active{background-color: #009688;;color: #fff;}
    .pagination .disabled{color:#aaa;}

自己马克一下...

猜你喜欢

转载自blog.csdn.net/Gino_tkzzz/article/details/82462266