一、实验目的
1、掌握ThinkPHP5.0用户查询与分类查询功能。
二、实验内容
1、掌握ThinkPHP5.0用户查询功能。
2、掌握ThinkPHP5.0用户分类查询功能。
(>>>>在公众号中输入文章最后彩蛋即可获取源代码)
开源项目:https://github.com/chenxhjeo,个人博客:http://blog.csdn.net/u013487761
技术QQ群名称:豆豆咨询,群号:625686304
微信公众号名称:豆豆咨询,微信公众号:douAsk
初建日期:2017.04.27
三、实验步骤及过程
实验十二实现了单页浏览、删除、增加和修改用户功能,但复杂的查询功能并没有实现,以下我们将介绍如何实现这些功能。
1、查询与分类查询功能界面
用户登录后,进入http://127.0.0.1/noneCms/public/index.php/weixin/index/index.html主界面,单击公众号用户,则进入了微信用户信息管理界面,包括用户信息浏览、删除、增加、修改、查询与分类查询几个功能,如图所示。
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();
varenqCategory= $("#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,公众号名称为“豆豆咨询”。扫描以下二维码,关注“豆豆咨询”。
技术QQ群名称:豆豆咨询,群号:625686304
微信公众号名称:豆豆咨询,微信公众号:douAsk
彩蛋号:1210。