Springboot+layui 回填(回显)下拉(select)选择框 您所在的位置:网站首页 前端表单回显 Springboot+layui 回填(回显)下拉(select)选择框

Springboot+layui 回填(回显)下拉(select)选择框

2023-12-01 22:27| 来源: 网络整理| 查看: 265

在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 实验室设备网 版权所有