select下拉菜单实现二级联动效果
程序员文章站
2022-06-22 10:25:14
需求:建立年级、班级两个数据表,获取年级表信息,根据年级,获取相应的班级
效果图:
不完美的地方就是在不选择年级的时候,是不能选择任何班级的。
代码部分
首先是建立两个表的...
需求:建立年级、班级两个数据表,获取年级表信息,根据年级,获取相应的班级
效果图:
不完美的地方就是在不选择年级的时候,是不能选择任何班级的。
代码部分
首先是建立两个表的实体
需要注意的就是写注解了。代码就不贴了。
dao层代码
年级dao
年级的dao层没什么代码,就是继承那三个类,具体用到哪个我也不清楚,就直接都继承了。
public interface gracedao extends pagingandsortingrepository<grace, string>,jpaspecificationexecutor<grace>,jparepository<grace, string> { }
班级dao
班级dao里面就这一行代码,用的是内置的findby方法,我的gid在数据库中是int型,在这里为了方便用的string型(我的可以实现操作,不可以的话强制转型成int就可以了,问题不大)
list<cla> findbygid(string gid);
service层
年级
年级这里不需要有什么操作,直接查出全部就可以了,所以我就用了内置的findall方法
@service public class graceservice { @autowired private gracedao gracedao; public list<grace> findall(){ return gracedao.findall(); } } ///////下面是内置findall方法的注释什么的。用不到,只是贴出来给大家看一下 /* * (non-javadoc) * @see org.springframework.data.repository.crudrepository#findall() */ list<t> findall();
班级
班级这里要根据获取到的gid进行查询
public list<cla> findbygid(string gid){ return cladao.findbygid(gid); }
controller层
//查询所有年级信息 @requestmapping("grace") @responsebody public list<grace> grace(){ return graceservice.findall(); } //根据年级的gid获取班级信息 @requestmapping("cla") @responsebody public list<cla> cla(httpservletrequest req){ string gid = req.getparameter("gid"); //system.out.println(gid); return claservice.findbygid(gid); }
前端代码
html部分
<div id="app"> 年级: <select v-on:change="claa()" v-model="gid"> <option value="0">----请选择年级--- </option> <option v-for="gra in grac" :value="gra.gid">{{gra.gname}}</option> </select> 班级: <select> <option v-for="cl in cla">{{cl.cname}}</option> </select> </div>
js部分
var vm = new vue({ el: '#app', data:{ grac:[], cla:[], gid:0//可以让年级的下拉框默认选择<option value="0">----请选择年级--- </option>项 }, mounted(){//页面加载时开始加载下面的两个方法 this.grace();//年级 this.claa();//班级,为了避免class关键字,用的其他名字 }, methods:{//自定义方法 grace:function(){ $.post("/work/grace",{},function(data){ vm.grac = data; }); }, claa:function(){ //alert(this.gid); //传参:传递当前选中的gid $.post("/work/cla",{gid:this.gid},function(data){ //alert(json.stringify(data)); vm.cla = data; }); }, } });
总结
以上所述是小编给大家介绍的select下拉菜单实现二级联动效果,希望对大家有所帮助!