首页 > 其他分享 >若依框架 ------- 三级联动之下拉框查询

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

时间:2023-02-20 14:06:37浏览次数:36  
标签:若依 school grade List ------- classes sys data 下拉框


联动

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

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

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

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);
}

下拉框查询的传值

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

要先进行表连接,建立关系,不然怎么查,

表连接的

几个字段,还有SQL语句

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

<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都可以。后期解决会发布,也求大神改正。

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

若依框架 ------- 三级联动之下拉框查询_数据库_06

<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>

标签:若依,school,grade,List,-------,classes,sys,data,下拉框
From: https://blog.51cto.com/u_15949848/6068467

相关文章

  • 若依框架 -------- vue3+element-plus(四)
    后端管理系统,前后端分离的框架若依管理后台,来看下vue3+element-plus版本。实现一个页面定义api请求gatewayPath分布式网关定义importrequestfrom'@/utils/request'impor......
  • 若依框架 -------- vue3+element-plus(三)
    后端管理系统,前后端分离的框架若依管理后台,来看下vue3+element-plus版本。静态文本assetsassets静态img、svg、stylemain.js ​​import'@/assets/styles/index.scss'/......
  • 若依框架 -------- vue3+element-plus(二)
    后端管理系统,前后端分离的框架若依管理后台,来看下vue3+element-plus版本。API后台接口请求user.js//查询用户列表exportfunctionlistUser(query){returnrequest({......
  • Docker-全面详解(学习总结---从入门到深化)
    一、什么是Docker Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。 什么是"集装箱技术"我们都知道码头里的集装箱是运载货物用的,它是一种按规......
  • HTML5+CSS3(十)-全面详解(学习总结---从入门到深化)
    ​​Display​​​​编辑 元素隐藏属性对比​​​​学习效果反馈 ​​​​文档流 ​​​​文档流产生的问题 ​​​​空格折叠​​​​元素无空隙​​​​脱离文档流​......
  • 若依框架---PageHelper分页(四)
    我们通过下载并查看​​PageHelper-Spring-Boot-Starter​​​源码,了解到​​PageHelper​​​是通过实现​​MyBatis​​​拦截器接口​​org.apache.ibatis.plugin.Interc......
  • 若依框架---PageHelper分页(三)
    在上一篇文章“​​若依系统分页工具学习-PageHelper篇二​​”中,我们阐述了PageHelper使用ThreadLocal来将分页参数保存在当前线程中。那么我们为什么却找不到若依项目中后......
  • 若依框架---PageHelper分页(十三)
      我们介绍了PageHelper中的cache包以及简单介绍了包中各个类的属性与方法;还介绍了Java中一种加载类的方式:​​Class.forName​​​,并且通过查看​​com.mysql.jdbc.Drive......
  • 若依框架---PageHelper分页(十四)
     在前几篇文章中,我们查看了PageHeler中的包 ​​com.github.pagehelper​​​以及子包​​com.github.pagehelper.cache​​​中的类与结构,并且借着​​cache​​​包......
  • 直流信号模拟量1-5V0-10V转4-20mA0-24V光电隔离转换放大器2进2出
    概述​导轨安装DIN22IPOOC系列模拟信号隔离放大器是一种将输入信号隔离放大、转换成按比例输出的直流信号混合集成厚模电路。产品广泛应用在电力、远程监控、仪器仪表、医......