##一、实验目的
1、掌握ThinkPHP5.0用户查询与分类查询功能。
##二、实验内容
1、掌握ThinkPHP5.0用户查询功能。
2、掌握ThinkPHP5.0用户分类查询功能。
##三、实验步骤及过程
上一个实验实现了单页浏览、删除、增加和修改用户功能,但复杂的查询功能并没有实现,以下我们将介绍如何实现这些功能。
1、查询与分类查询功能界面
用户登录后,进入(http://127.0.0.1/noneCms/public/index.php/weixin/index/index.html)主界面,单击公众号用户,则进入了微信用户信息管理界面,包括用户信息浏览、删除、增加、修改、查询与分类查询几个功能,如图所示。
![](https://box.kancloud.cn/51cfb6fe4cfeb007598291611967012b_557x326.jpg)
2、关键代码解析
我们将详细解析查询与分类查询功能实现的关键步骤,包括查询功能与后台之间的交互;分类查询与后台的交互。
1)查询功能与后台的交互
用户单击查询按钮,通过以下代码调用users控制器的index方法,以get方法向后台传递数据,前台通过input的id得到用户输入,代码如下。
~~~
$(".enq").click(function(){
var name= $("#name").val();
var url = "{:url('users/index')}" + "?name=" + name;
window.location.href = url;
});
~~~
2)分类查询功能与后台的交互
用户单击分类查询按钮,通过以下代码调用users控制器的index方法,同样以get方法向后台传递数据,前台通过input的id得到用户输入,包括查询类别和输入内容,代码如下。
~~~
//分类查询
$(".enqc").click(function(){
var enqcategory= $("#enqCategory").val();
var enqCategory= $("#inpCon").val();
var url = "{:url('users/index')}" + "?enqName=" + enqcategory + "&enqCategory=" + enqCategory;
window.location.href = url;
})
~~~
另外,当用户单击分类查询之后,需要保留用户的分类类别,我们采用$("#enqCategory").val('{$name}');代码得到用户的查询分类信息,设置id为enqCategory的select控件内容,$name从后台传递过来的变量。
3)Users.php文件查询与分类查询功能
Users.php是users控制器文件,其中index()方法显示用户管理页面,查询包括单条件查询和多条件查询,代码如下:
~~~
public function index()
{
$id = input('param.id',0);
$userName = input('param.name','');
$enqName= input('param.enqName','');
$enqCategory= input('param.enqCategory','');
$this->assign('name', 'name');
//exit(json_encode(['status' => 0, 'msg' => 'id:'.$id.' name:'.$userName.' enqName:'.$enqName.' enqCategory:'.$enqCategory, 'url' => '']));
if($id > 0){
$list = Db::name('user')->field('username,logintime,id,loginip,email,islock,phone')->where('id','eq',$id)->where('islock','neq',3)->select();
$this->assign('list', $list);
return $this->fetch();
} else if($userName != '') {
$list = Db::name('user')->field('username,logintime,id,loginip,email,islock,phone')->where('username','like','%'.$userName.'%')->where('islock','neq',3)->select();
$this->assign('list', $list);
return $this->fetch();
} else if($enqCategory != '') {
$this->assign('name', $enqName);
if($enqName == 'name'){
$list = Db::name('user')->field('username,logintime,id,loginip,email,islock,phone')->where('username','like','%'.$enqCategory.'%')->where('islock','neq',3)->select();
$this->assign('list', $list);
return $this->fetch();
} else if($enqName == 'phone'){
$list = Db::name('user')->field('username,logintime,id,loginip,email,islock,phone')->where('phone','like','%'.$enqCategory.'%')->where('islock','neq',3)->select();
$this->assign('list', $list);
return $this->fetch();
}
} else {
$list = Db::name('user')->field('username,logintime,id,loginip,email,islock,phone')->where('islock','neq',3)->select();
$this->assign('list', $list);
return $this->fetch();
}
}
~~~
##四、技术服务
1、如果有疑问或者需要帮助,请加入QQ群(群名称:豆豆咨询,群号:625686304);或者公众号douAsk,公众号名称为“豆豆咨询”。扫描以下二维码,关注“豆豆咨询”。
![](https://box.kancloud.cn/541e0b698446c38ba398b183c361fe0d_430x430.jpg)
技术QQ群名称:豆豆咨询,群号:625686304
微信公众号名称:豆豆咨询,微信公众号:douAsk
彩蛋号:1210(在公众号里输入彩蛋号即可得到源码)。