欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

select下拉菜单实现二级联动效果

程序员文章站 2022-06-22 10:25:14
需求:建立年级、班级两个数据表,获取年级表信息,根据年级,获取相应的班级 效果图: 不完美的地方就是在不选择年级的时候,是不能选择任何班级的。 代码部分 首先是建立两个表的...

需求:建立年级、班级两个数据表,获取年级表信息,根据年级,获取相应的班级

效果图:

select下拉菜单实现二级联动效果

不完美的地方就是在不选择年级的时候,是不能选择任何班级的。

代码部分

首先是建立两个表的实体

需要注意的就是写注解了。代码就不贴了。

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下拉菜单实现二级联动效果,希望对大家有所帮助!

相关标签: select 下拉菜单