Springboot+layui 回填(回显)下拉(select)选择框 | 您所在的位置:网站首页 › 前端表单回显 › Springboot+layui 回填(回显)下拉(select)选择框 |
在Java学习阶段,相信许多小伙伴用Layui搭建过前端页面,对于后端开发学习,使用一个好用的前端框架尤为重要,记录一下我在开发过程中遇见的问题。 问题描述:我在使用layui做模态框时,需要查询数据库的单个字段进行数据回填到下拉选择框。直接上图演示一下。 此时的数据为数据库中的数据,当然,这些数据是和要添加的表,不是同一个。此时就需要考虑,怎么查询一张表的一个字段,进行回填了。 解决:因为一张表如果只用一个字段,要把所有的字段都查出来的话,未免效率有些低,所以就要只查询一个字段,这里我使用的MybatisPlus省略的sql语句,如果你使用的是mybatis,则需要手动编写sql,简单的sql我就不再描述,大家可以自行百度。 省略了实体类,此处只需要把queryWrapper.select("depart_name");换成你自己的数据库字段名即可,也可以拼接。 stream流为jdk1.8的新特性(现在来说,好像也不新了)。没了解过的小伙伴可以去百度了解一下。 // service 层 public Map selectDepartment() { QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.select("depart_name"); List list = departmentDao.selectList(queryWrapper); List collect = list.stream().map(Department::getDepartName).collect(Collectors.toList()); Map map = new HashMap(); map.put("departs",collect); return map; }此时返回了一个map集合。 在controller层调用一下即可,此时的map集合中存放了要查询的字段的所有数据。并且以JSON格式进行了返回 @ResponseBody @RequestMapping(value = "/selectAllDepartmentName") public Map selectAllDepartmentName(){ return departmentService.selectDepartment(); }前端处理(摘取重要部分) 所属部门:ajax回填 $.ajax({ url:"/departmentController/selectAllDepartmentName", success:function (result) { // 此处每次打开 做一次清空操作,防止记忆上次的选择 $("#departName").empty(); // 此处添加默认的选择(如果没有这个option,则ios系统可能无法打开下拉框,所以为了(照顾)他们,此处还是有必要的) $("#departName").append("" +"----请选择----"+"") for (var i = 0; i < result.departs.length; i++) { $("#departName").append("" +result.departs[i]+"") } // 注意 没有这个渲染,可能会回填失败 layui.form.render('select'); } }) } 总结:Layui虽然提供了官方文档,但是有很多地方,去翻文档还是很难去翻到的,有时候还需要借助博客。 以上如有错误,欢迎指出!!! |
CopyRight 2018-2019 实验室设备网 版权所有 |