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

 更新时间:2019年10月27日 15:16:35   作者:生花脱颖  
这篇文章主要介绍了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下拉菜单实现二级联动效果,希望对大家有所帮助!

相关文章

  • UTF-8 编码中BOM的检测与删除

    UTF-8 编码中BOM的检测与删除

    所谓BOM,全称是Byte Order Mark,它是一个Unicode字符,通常出现在文本的开头,用来标识字节序(Big/Little Endian),除此以外还可以标识编码(UTF-8/16/32),如果出现在文本中间,则解释为zero width no-break space。
    2011-09-09
  • Anaconda中pkgs文件夹及如何清空PKGS

    Anaconda中pkgs文件夹及如何清空PKGS

    在anaconda中,最安全的安装和升级命令是conda install XXX,而python中是pip,但在anaconda下依然可以使用pip升级,这样一些依赖可能会因为更新后的版本过高出现异常,本文给大家分享Anaconda中pkgs文件夹及pkgs文件清理方法,感兴趣你跟随小编一起学习吧
    2022-11-11
  • 超详细Windows下VSCode安装教程

    超详细Windows下VSCode安装教程

    本文通过图文并茂的形式给大家介绍Windows下VSCode安装教程,感兴趣的朋友跟随小编一起看看吧
    2023-11-11
  • 基于语雀编辑器的在线文档编辑与查看功能

    基于语雀编辑器的在线文档编辑与查看功能

    语雀是一个非常优秀的文档和知识库工具,其编辑器更是非常好用,虽无开源版本,但有编译好的可以使用,本文基于语雀编辑器实现在线文档的编辑与文章的预览,感兴趣的朋友一起看看吧
    2024-07-07
  • RocketMQ单结点安装/Dashboard安装过程分享

    RocketMQ单结点安装/Dashboard安装过程分享

    RocketMq属于天生集群,需要同时启动nameServer和Broker进行部署,在通过Dashboard进行监控,本文给大家介绍RocketMQ单结点安装/Dashboard安装过程,感兴趣的朋友跟随小编一起看看吧
    2024-07-07
  • vscode配置leetcode插件并解决无法登录问题(图文详解)

    vscode配置leetcode插件并解决无法登录问题(图文详解)

    这篇文章主要介绍了vscode配置leetcode插件并解决无法登录问题,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • Prompt 编程产生背景技术原理应用实例解析

    Prompt 编程产生背景技术原理应用实例解析

    这篇文章主要为大家介绍了Prompt 编程产生背景技术原理应用实例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • Windows、IDEA、VS Code常用快捷键汇总

    Windows、IDEA、VS Code常用快捷键汇总

    这篇文章主要介绍了Windows、IDEA、VS Code常用快捷键汇总,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • 使用idea 去除 html 代码前的行号和空行的方法详解

    使用idea 去除 html 代码前的行号和空行的方法详解

    这篇文章主要介绍了使用idea 去除 html 代码前的行号和空行,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • gitlab自动定时备份文件备份失败发送邮件功能实现

    gitlab自动定时备份文件备份失败发送邮件功能实现

    为预防gitlab出现故障,每天定时备份,备份完成后把之前的备份文件删除,备份成功或失败的时候自动发送邮件提醒,这里的gitlab为docker部署,对gitlab自动定时备份文件相关操作感兴趣的朋友一起看看吧
    2024-06-06

最新评论