若依框架 ------- 三级联动之下拉框查询

简介: 若依框架 ------- 三级联动之下拉框查询

联动


因为是查询要放在查询的位置


HTML页面(显示)

<li>
  学生学校:
<!--   <select id="school" name="sysSchool.schoolId">-->
  <select id="school" name="sysGrade.gradeSchool">
    <option value="">请选择学校</option>
  </select>
  学生年级:
<!--   <select id="grade" name="sysGrade.gradeId">-->
  <select id="grade" name="sysClasses.classesGrade">
    <option value="">请选择年级</option>
  </select>
  学生年级:
<!--  <select id="classes" name="sysClasses.classesId">-->
  <select id="classes" name="studentClass">
    <option value="">请选择班级</option>
  </select>
</li>


js方法(都是重复的,区别:第一个是查全部,之后都是传参查的)

<script type="text/javascript">
  $(document).ready(function() {//页面加载时运行此函数  放在最前端
    $.ajax({
      url: ctx + "system/school/select",
      type: 'GET',
      success:function (data) {
        <!--清空下拉框中的缓存-->
        $("#school").empty();
        <!--避免下拉框的值不变-->
        $("#school").append("<option value=''>请选择学校</option>");
        <!--使用循环解析后端传来的数据,并用使用js动态拼接html语言-->
        for (var i = 0; i < data.length; i++){
          $("#school").append("<option value='" + data[i].schoolId + "'>" + data[i].schoolName + "</option>");
        }
      }
    });
    $("#school").change(function () {//同上面一样
      // alert($("#school").val())
      $.ajax({
        url: ctx + "system/grade/select",
        type: 'GET',
        data: {
          gradeSchool: $("#school").val(),
        },
        success:function (data) {
          $("#grade").empty();
          $("#grade").append("<option value=''>请选择年级</option>");
          for (var i = 0; i < data.length; i++){
            $("#grade").append("<option value='" + data[i].gradeId + "'>" + data[i].gradeName + "</option>");
          }
        }
      });
    });
    $("#grade").change(function () {//同上面一样
      $.ajax({
        url: ctx + "system/classes/select",
        type: 'GET',
        data: {
          classesGrade: $("#grade").val(),
        },
        success:function (data) {
          $("#classes").empty();
          $("#classes").append("<option value=''>请选择班级</option>");
          for (var i = 0; i < data.length; i++){
            $("#classes").append("<option value='" + data[i].classesId + "'>" + data[i].classesName + "</option>");
          }
        }
      })
    });
  })
</script>


controler层


school

@GetMapping("/select")
    @ResponseBody
    public List<SysSchool> select()
    {
        List<SysSchool> list = schoolService.selectSchoolList(new SysSchool());
        return  list;
    }


grade

  @GetMapping("/select")
    @ResponseBody
    public List<SysGrade> select(Long gradeSchool)
    {
//        System.out.println("11111111111111111111");
//        System.out.println(gradeSchool);
        List<SysGrade> list1 = gradeService.selectGradeById1(gradeSchool);
        List<SysGrade> list = gradeService.selectGradeList(new SysGrade());
        return  list1;
    }


classes

 @GetMapping("/select")
    @ResponseBody
    public List<SysClasses> select(Long classesGrade)
    {
        List<SysClasses> list1 = classesService.selectClassesById1(classesGrade);
        List<SysClasses> list = classesService.selectClassesList(new SysClasses());
        return  list1;
    }


mapper.xml(写sql语句的地方)


方法都一样,这里就不都写了,只写一个grade表的

<select id="selectClassesById1" parameterType="Long" resultMap="SysClassesResult">
    <include refid="selectClassesVo"/>
    where classes_grade = #{classesGrade}
  </select>


mapper.java

public List<SysGrade> selectGradeById1(Long gradeSchool);


service层

public List<SysGrade> selectGradeById1(Long gradeSchool);


serviceImpl层

@Override
    public List<SysGrade> selectGradeById1(Long gradeSchool)
    {
        return gradeMapper.selectGradeById1(gradeSchool);
    }


下拉框查询的传值



要先进行表连接,建立关系,不然怎么查,表连接的几个字段,还有SQL语句

<sql id="selectStudentVo">
        SELECT * FROM sys_student
      INNER JOIN sys_classes
      INNER JOIN sys_grade
      INNER JOIN sys_school
        ON sys_student.`student_class` = sys_classes.`classes_id`
        AND sys_classes.`classes_grade` = sys_grade.`grade_id`
        AND sys_grade.`grade_school` = sys_school.`school_id`
    </sql>


下拉框查询的


注意,这里需要改一下id的格式,不然查不了,是一个本人解决不了,或者本身就存在的问题,改字段类型,char,varchar都可以。后期解决会发布,也求大神改正。

<select id="selectStudentList" parameterType="SysStudent" resultMap="SysStudentResult">
    <include refid="selectStudentVo"/>
    <where>
      <if test="studentName != null and studentName != ''">
        AND student_name like concat('%', #{studentName}, '%')
      </if>
      <if test="abs != null and abs != ''">
        AND abs like concat('%', #{abs}, '%')
      </if>
      <if test="sysGrade.gradeSchool != null and sysGrade.gradeSchool != ''">
        AND sys_grade.grade_school =#{sysGrade.gradeSchool}
      </if>
      <if test="sysClasses.classesGrade != null and sysClasses.classesGrade != ''">
        AND sys_classes.classes_grade =#{sysClasses.classesGrade}
      </if>
      <if test="studentClass != null and studentClass != ''">
        AND student_class =#{studentClass}
      </if>
    </where>
    ORDER BY sys_student.`abs` DESC
    ,sys_student.`student_id` ASC
  </select>
目录
相关文章
|
JavaScript 前端开发
若依框架文档开发手册----开发中常用功能模块(中)
若依框架文档开发手册----开发中常用功能模块
4925 0
|
SQL 数据库 Windows
若依代码生成详细教程
我觉得若依官方的代码生成教程过于简单,网上的教程很多连个效果图都没有。 本文要达到的效果如下:[学生管理] 下有个 [学生信息] 菜单,里面可以增删改查。
7102 0
若依代码生成详细教程
|
Java Maven
Maven - Error:java: Annotation processing is not supported for module cycles. Please ensure that all
Maven - Error:java: Annotation processing is not supported for module cycles. Please ensure that all
2534 0
Maven - Error:java: Annotation processing is not supported for module cycles. Please ensure that all
|
5月前
|
前端开发 JavaScript 安全
【RuoYi-SpringBoot3-ElementPlus】:若依前端增强版 —— 功能扩展优化
【RuoYi-SpringBoot3-ElementPlus】基于若依Vue3,100%兼容原功能,新增省市区级联、千分位输入、增强上传、UEditor等8+实用组件,集成dayjs、xe-utils、mitt等主流工具库,支持拖拽排序、移动端适配、三级等保自动登出,配备代码检查、Prettier格式化、FTP自动部署,开箱即用,显著提升开发效率与系统安全性。
1075 1
|
SQL XML JavaScript
【若依Java】15分钟玩转若依二次开发,新手小白半小时实现前后端分离项目,springboot+vue3+Element Plus+vite实现Java项目和管理后台网站功能
摘要: 本文档详细介绍了如何使用若依框架快速搭建一个基于SpringBoot和Vue3的前后端分离的Java管理后台。教程涵盖了技术点、准备工作、启动项目、自动生成代码、数据库配置、菜单管理、代码下载和导入、自定义主题样式、代码生成、启动Vue3项目、修改代码、以及对代码进行自定义和扩展,例如单表和主子表的代码生成、树形表的实现、商品列表和分类列表的改造等。整个过程详细地指导了如何从下载项目到配置数据库,再到生成Java和Vue3代码,最后实现前后端的运行和功能定制。此外,还提供了关于软件安装、环境变量配置和代码自动生成的注意事项。
31998 73
|
SQL JSON 前端开发
若依RuoYi脚手架二次开发教程(二次开发必学技能)
本次我们将通过一个菜品管理模块开发的案例,来演示拿到若依框架后,如何在若依管理系统上进行二次开发,升级改造为自己的管理系统。适合以若依作为项目脚手架的公司开发人员、毕业设计的学生及开源项目学习者。
10341 1
若依RuoYi脚手架二次开发教程(二次开发必学技能)
|
缓存 Java 应用服务中间件
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
5011 5
|
Java
Idea自动生成注释
Idea自动生成注释
1328 6
Idea自动生成注释
|
机器学习/深度学习 人工智能 监控
为什么选择工作流引擎?三大主流引擎优缺点剖析
工作流引擎是一种用于自动化、管理和监控业务流程的软件系统,通过预定义规则和流程模型协调任务流转。其核心功能包括流程建模、任务分配、状态跟踪和异常处理,能提升企业流程效率30%-50%,减少80%以上的人为错误。典型应用场景涵盖审批、生产、服务和决策类流程。主流引擎如Activiti、Flowable和Camunda各有特色,Camunda因高性能和完整工具链成为复杂项目的首选。未来趋势包括低代码集成、AI优化及云原生架构。
为什么选择工作流引擎?三大主流引擎优缺点剖析
|
监控 NoSQL Java
若依RuoYi项目环境搭建教程(RuoYi-Vue + RuoYi-Vue3版本)
若依(RuoYi)是一款基于Spring Boot和Vue.js的开源Java快速开发脚手架,支持OAuth2、JWT鉴权,集成多种安全框架和持久化框架。它提供了系统管理、监控管理、任务调度、代码生成等常用功能模块,适合中小型公司快速搭建Web应用。本文主要介绍若依框架的特点、版本发展、优缺点及项目部署步骤,帮助开发者快速上手并部署若依项目。
21598 3
若依RuoYi项目环境搭建教程(RuoYi-Vue + RuoYi-Vue3版本)

热门文章

最新文章