1、在后台的时候,做多条件或单条件搜索的时候,一定要用get方法,因为涉及到分页问题
具体实现:
前端html的form表单页面:
<div class="form-group">
<form action="/dswiliu/admin.php" method="get"> //一定要用get方法,涉及到分页问题,如果post,点击下一页就不好使
<div class="col-md-offset-6 col-sm-2">
<select class="form-control" name="handle">
<option value="">状态</option>
<option value="0"
<eq name="search.handle" value="0">selected="selected"</eq>
>未处理</option>
<option value="2"
<eq name="search.handle" value="2">selected="selected"</eq>
>已处理</option>
<option value="-1"
<eq name="search.handle" value="-1">selected="selected"</eq>
>已提交</option>
<option value="1"
<eq name="search.handle" value="1">selected="selected"</eq>
>已结款</option>
</select>
</div>
<div class="col-sm-3">
<input type="text" name="plateNo" class="form-control" placeholder="请输入车号"
value="{$search.plateNo}">//回调显示的数据
</div>
<input type="hidden" name="c" value="LogisticsOrder">
<input type="hidden" name="a" value="index">
<div class="col-sm-1">
<button id="button-search" type="submit" class="btn btn-sm btn-info col-sm-12">搜索</button>
</div>
</form>
</div>
后台控制器中的写法:
$data = array();//$data是查询的条件,组装成数组
$search = array();//$search是查询的回调的数据
if(isset($_REQUEST['handle']) && $_REQUEST['handle']!=""){
$data['handle'] = intval($_REQUEST['handle']);//
$search['handle'] = $data['handle'];
if($data['handle'] == 0){
$data['handleBusiness'] = $data['handle'];
}
if($data['handle'] == 2){
$data['handle'] = 0;
$data['handleBusiness'] = 1;
}
}
if(isset($_REQUEST['plateNo']) && $_REQUEST['plateNo']!=""){
$data['plateNo'] = array('LIKE','%'.$_REQUEST['plateNo'].'%');//模糊查询
$search['plateNo'] = $_REQUEST['plateNo'];
}
$adminUser = session('adminUser');
if(empty($data['handle']) && $data['handle'] !=0 ){
if($adminUser['admin_type'] == 1){
$data['handle'] = array('in','0,-1,1');//in操作,在某个范围里的
}elseif ($adminUser['admin_type'] == 2){
$data['handle'] = array('NEQ',0);//不等于操作
}
}
$this->assign('adminUser', $adminUser);
$this->assign('search',$search);
2、对于前台的单搜索框,搜索多个字段的
//or操作
if ($_GET['title']) {
// $title['release']= array('LIKE','%'.$_GET['title'].'%');
$title['loadingAddr']= array('LIKE','%'.$_GET['title'].'%');
$title['unloadingAddr']= array('LIKE','%'.$_GET['title'].'%');
$title['goodsName']= array('LIKE','%'.$_GET['title'].'%');
$title['_logic'] = 'or';
$data['_complex'] = $title;
}