JS学习 | 【动态下拉框】连接数据库实现联动效果

23 篇文章 3 订阅
订阅专栏

目的: 基于Mybatis动态获取数据库中的值展现在下拉框,下拉框选中并提交给后台选中内容,由后台进行处理。
在这里插入图片描述

正文

一、前端样式

参考: bootstrap-select举例

二、数据展现

(1)静态下拉框

在这里插入图片描述
方法一:直接定义

			<form>
				<div class="form-group">
					<div id="left">
						<select class="form-control">
							<option value='1'>aaa</option>
							<option value='2'>bbb</option>
							<option value='3'>ccc</option>
						</select>
					</div>
				</div>
			</form>	

方法二:JavaScript注入

			<form>
				<div class="form-group">
					<div id="left">
						<select class="form-control"></select>
					</div>
				</div>
			</form>	
			<script type="text/javascript">
				var result = [ "aaa", "bbbb", "ccc" ];
				for (var i = 0; i < result.length; i++) {
					$("#left select").append(
							"<option value='"+i+"'>" + result[i] + "</option>");
				}
			</script>

(2)动态下拉框

数据库内容:
在这里插入图片描述
动态注入下拉框:
在这里插入图片描述

根据上述方法二扩展,从后端获取json值返回到result,
这里主要涉及:如何从后端获取json,
参考之前文章: SSM框架(五)jquery三种数据耦合方式【后端->值->前端】

最终效果:
在这里插入图片描述
具体方法:

  • 前端jsp:
    在这里插入图片描述
    注意:get获取的json返回值为一个集合
			<form>
				<div class="form-group">
					<div id="left2">
						<select class="form-control"></select>
					</div>
				</div>
			</form>	
			<script type="text/javascript">
				$(document).ready(function(){
						$.get(
							"${basePath}teacher/getall.d",
							function(arr){
								for(var i = 0 ; i < arr.length;i++){
									/*创建新的一行*/
									var newRow = "<option value="+arr[i].teacherId+">"+arr[i].teacherName+"</option>";								
									/*插入新的一行*/
									$("#left2 select").append(newRow);
								}
							}
						);	
				});
			</script>
  • controller:(注意:这里返回的是list集合)
    在这里插入图片描述
	@RequestMapping("/getall")
	public @ResponseBody List<TeacherInfo> getTeachers(){
		try {
			return teacherInfoService.findTeachers();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}
  • service:
    在这里插入图片描述
List<TeacherInfo> findTeachers() throws SQLException;
  • serviceImpl:
    在这里插入图片描述
    这里用的Util配置,直连数据库查询,这里也可以配置到Mybatis中:
	@Override
	public List<TeacherInfo> findTeachers() throws SQLException {
		String sql = "select * from teacher_info";
		Connection con = DBManager.getConnection();
		PreparedStatement pstm = con.prepareStatement(sql);
		ResultSet rs = pstm.executeQuery();
		List<TeacherInfo> teachers = new ArrayList<>();//定义一个列表,存储数据
		while(rs.next()){
			Integer teacherId = rs.getInt(1);
			String teacherName = rs.getString(2);
			String teacherNumber = rs.getString(3);
			//列表中每个元素封装为TeacherInfo实体型
			TeacherInfo t = new TeacherInfo();
			t.setTeacherId(teacherId);
			t.setTeacherName(teacherName);
			//添加到techaers返回列表中
			teachers.add(t);
		}
		pstm.close();
		con.close();
		return teachers;
	}
  • Util配置:
    在这里插入图片描述
package com.chinasofti.ssm01.util;

import java.sql.*;


public class DBManager {
	private static final String URL = "jdbc:mysql://localhost:3306/file_server?useUnicode=true&characterEncoding=UTF-8";
	private static final String USERNAME = "root";
	private static final String PASSWORD = "wy123456";
	private static final String CLASSNAME = "com.mysql.jdbc.Driver";//mysql5.7
	

	static{
		try {
			Class.forName(CLASSNAME);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public static Connection getConnection() throws SQLException{
		Connection con = DriverManager.getConnection(URL, USERNAME, PASSWORD);
		return con;
	}
}

动态加载下拉框参考

三、获取下拉框选中传值到后端

这里主要涉及内容:获取下拉框选中值,并传值到后端
参考前面文章: SSM框架(二)四种控制器请求【前端->值->后端】


具体demo在:教师管理系统demo,这里就不重复了。
快速链接: SSM框架(九)Mybatis【多表查询-前后端】交互(教师管理系统demo)

bootstrap-select动态加载数据和多级联动
q283614346的博客
06-23 1万+
最近使用bootstrap-select在做了一个地址的联动效果图如下 环境相关 bootstrap 3.3.7 jquery 3.3.1 bootstrap-select 1.13.9 1、数据表结构如下 -- 地址配置表(address_config) create table address_config ( option_value varchar(20) not null comm...
使用ajax从数据库动态加载下拉框(select)数据,可编辑下拉框
热门推荐
明天你好
03-29 2万+
<div style="position:relative;"> <span style="margin-left:100px;width:18px;overflow:hidden;"> <select id="change" name="property" style="width:118px;margin-left:-100px" onchange="this.parentNod
easyExcel导入导出,插入数据到数据库实现下拉菜单)
AI_xin99的博客
08-13 924
具体实现请查阅官方文档 首先,引入easyExcel的依赖包 <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.2.10</version> </dependency> 其次,可以在实体类通过注解设置一些表格样式,有些数字代替的含义可以百度自行查阅。实体.
js下拉框联动——前端笔记
weixin_42128648的博客
03-14 1438
我们常常要用到下拉框联动的功能,比如最常用的是选择地址的 省 市 区 的联动。先填充第一个下拉框,然后写一个第一个下拉框的change事件来加载第一个下拉框
JS 动态加载下拉框
loveuo86的专栏
02-24 1046
function initSelectControls() { var intRowsLen =AppGridE1.GetRowCount(); var j,intOptionCount var strProperty,strQualification,strPropertyList,strQualificationList,strPropertyHTML,strQualificationHTML
关于vue的下拉框显示数据库的数据
qq_45130645的博客
04-30 6379
举个例子:新增二级类目的时候,选择一级类目。 实现:oneId,插入 <el-form-item label="一级分类名称" prop="oneName"> <el-select v-model="form.oneId" placeholder="请选择一级分类名称"> <el-option v-for="item in categoryOptions"
若依单体增加,修改文件下拉框内容
qq_46093574的博客
06-22 387
一个合同管理里的小知识点 需求:把合同分类的名称放到合同管理系统的合同分类里面,增加选择的时候能出现合同分类名称
jsp从数据库获取数据填充下拉框实现二级联动菜单的方法
01-20
本文实例讲述了jsp从数据库获取数据填充下拉框实现二级联动菜单的方法。分享给大家供大家参考,具体如下: 项目告一段落,现在将遇到的比较实用的东西记录下来,写了多遍了,谨记于此,以备查看! 1、首先在数据库...
javascript实现省市区三级联动下拉框菜单
10-23
主要介绍了javascript实现省市区三级联动下拉框菜单很详细的代码,解决了大家实现javascript省市区三级联动下拉框菜单的问题,感兴趣的小伙伴们可以参考一下
jquery基于layui实现二级联动下拉选择(省份城市选择)
10-19
本篇文章主要介绍了jquery基于layui实现二级联动下拉选择(省份城市选择),具有一定的实用价,需要的朋友可以参考下
可编辑下拉框.动态加载数据
08-11
下拉框读取数据库数据.有时候数据多.会拉的很长.客户搜索起来很不方便.现在可以编辑下拉框,可根据输入的内容重新加载下拉框的内容.令客户选择查找起来更方便. 使用方法.将此js复制到项目.在用到需要编辑下拉框jsp界面引用此js.在body 属性里. 调用onload事件. 测试方法:点击下拉框.随便输入一个字母.即可看到效果.
动态从后台获取数据实现搜索下拉框
08-02
从后台获取数据,填充,实现搜索下拉框
ASP+JS三级联动下拉菜单[调用数据库数据]
10-31
ASP+JS三级联动下拉菜单[调用数据库数据]
下拉框联动
08-19
我微博上的源码,下拉框联动。主要成分就是数据结构。而且很好的从数据库读取数据。。
若依-关联另一张表的id与name,形成下拉框选项数据。
YangZ_L的博客
03-25 5968
问题描述: 基于若依前后端分离版本,需要在学生页面展示对应的专业信息,在student学生情况关联xnzy专业的数据,并在学生页面的搜索框、表格、对话框展示专业名称。 结果展示: 实现过程: studentMapper.xml: <resultMap type="Student" id="StudentResult"> <result property="stuId" column="stu_id" /> <result
下拉框绑定数据的两种方式
qq_58024830的博客
06-28 3010
下拉框绑定数据有两种方法:一种是存储数据法(暂时这么叫),一种是for循环绑定,也不要管哪种好,反正目的都是一样的 在做之前,先做一些简单的事情 先在SQL创建好数据,命名为:Table_1 在随随便便创建一个随随便便的随便页面 上边为HTML代码;下边为代码运行的结果 数据存储绑定: 在控制器,也就是创建当前这个视图的地方开始 List b = (fromtbb inmodel.Table_1 ...
如何用jstl的select标签做二级联动下拉列表框??
dieyuanjiao9299的博客
11-09 329
下拉列表框的多级联动早就会了。但是用jstl的select标签做下拉列表框的做二级联动的时候还是遇到了些问题。主要问题在用Ajax查询到的数据如何拼成下拉选项的时候。其实很简单,但我还是折腾了好久。所以这里做下笔记,以免哪天忘了。 注意:我的前缀:prefix="form" <%@ taglib prefix="form" uri="http://www.springfra...
html联动数据库,实现jsp页面二级下拉框联动,同时实时读取数据库数据
weixin_39685578的博客
06-04 583
今天小编带领大家一起学习有关编程语言的知识,让我们一起感受知识的力量c语言编程入门在一个jsp页面实现二级下拉框联动,实时读取数据,这个方法非常有用,只需要修改很小的地方就可以使用。的文件,serch.jsp,main.js,bytetostr.js,先讲一下main.js,这是script,其注意修改jsp页面名称。以下为引用的内容:function findObject(fName,init...
Angularjs指令实现下拉框效果动态获取接口的数据)
qq_27010291的博客
03-01 968
<select cam-dictionaries-type="333"></select> 实现一个下拉框效果 cam-dictionaries-type是需要写的指令代码,“333”是参数,后台根据参数获取接口,动态的 开始: ngModule.directive('camDictionariesType', ['$rootScope', '$http', 'Uri',function ($rootScope,$http, Uri) { return { ..
下拉框二级联动数据库
最新发布
11-28
下拉框二级联动数据库实现需要前端和后端的配合,前端需要通过JavaScript监听第一个下拉框的变化事件,然后向后端发送Ajax请求获取第二个下拉框的数据。后端需要提供两个接口,一个用于获取第一个下拉框的数据,另一个用于根据第一个下拉框的选择获取第二个下拉框的数据。 以下是一个简单的实现思路: 1.前端代码: ```html <!-- 第一个下拉框 --> <select id="building"> <option value="">请选择公寓</option> <!-- 动态添加选项 --> </select> <!-- 第二个下拉框 --> <select id="dormitory"> <option value="">请选择宿舍</option> <!-- 动态添加选项 --> </select> <script> // 监听第一个下拉框的变化事件 document.getElementById('building').addEventListener('change', function() { // 获取选择的 var buildingId = this.value; // 发送Ajax请求获取第二个下拉框的数据 var xhr = new XMLHttpRequest(); xhr.open('GET', '/findAllDormitory?buildingId=' + buildingId); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { // 解析返回的数据 var dormitories = JSON.parse(xhr.responseText); // 清空第二个下拉框的选项 var dormitorySelect = document.getElementById('dormitory'); dormitorySelect.innerHTML = '<option value="">请选择宿舍</option>'; // 动态添加选项 dormitories.forEach(function(dormitory) { var option = document.createElement('option'); option.value = dormitory.dormitoryId; option.textContent = dormitory.dormitoryName; dormitorySelect.appendChild(option); }); } }; xhr.send(); }); </script> ``` 2.后端代码: ```python # 定义两个接口 @app.route('/findAllBuilding') def find_all_building(): # 查询公寓表获取数据 buildings = Building.query.all() # 将数据转换为字典列表 building_list = [{'buildingId': building.buildingId, 'buildingName': building.buildingName} for building in buildings] # 返回数据 return jsonify(building_list) @app.route('/findAllDormitory') def find_all_dormitory(): # 获取一级下拉框的选择 building_id = request.args.get('buildingId') # 根据选择查询宿舍表获取数据 dormitories = Dormitory.query.filter_by(buildingId=building_id).all() # 将数据转换为字典列表 dormitory_list = [{'dormitoryId': dormitory.dormitoryId, 'dormitoryName': dormitory.dormitoryName} for dormitory in dormitories] # 返回数据 return jsonify(dormitory_list) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • Python二维码应用(一)QRcode二维码生成&识别 85532
  • Dlib模型之驾驶员疲劳检测一(眨眼) 53897
  • 程序员女朋友的相册是这样的 53894
  • Dlib模型人脸特征检测原理及demo 45729
  • 图灵机器人( 智能回复微信)及(智能聊天) 40161

分类专栏

  • 小白导航 35篇
  • Obejctive-C 16篇
  • Python学习 62篇
  • Java前后端开发学习 58篇
  • 云服务器学习 15篇
  • 嵌入式开发学习 24篇
  • 第一部分---前后端
  • matery 4篇
  • butterfly 6篇
  • Sakura 37篇
  • JavaWeb 10篇
  • SSM 23篇
  • Vue 12篇
  • Html 22篇
  • JavaScript 14篇
  • LayUI 1篇
  • Springboot 10篇
  • 数据库 12篇
  • Redis 1篇
  • 第二部分---语言类 1篇
  • Java 33篇
  • Python 47篇
  • Linux 13篇
  • Android 14篇
  • TensorFlow 10篇
  • 嵌入式 12篇
  • 机器视觉 10篇
  • 第三部分---其他
  • 微信公众号 3篇
  • 阿里云服务 11篇
  • 微信小程序 4篇
  • Robot 9篇
  • racecar 4篇

最新评论

  • 【Android】_SQLiteDemo_学生管理系统

    2301_78485892: 你这个现在还有错吗

  • OpenCV-python提取特征(批量处理数据)

    m0_73850043: 你好,不是说由边界点导出三种形状表达,分别是曲率函数、质心距离、复坐标函数。这个怎么获取的呢

  • Dlib模型之驾驶员疲劳检测总结(可视化界面)

    m0_66985607: 这个问题有解决吗

  • Python3.7+Opencv3.4.1编程从双目图像中恢复深度图像

    GIS 数据栈: 中文路径需要encode

  • 【Keras+TensorFlow+Yolo3】一文掌握图像标注、训练、识别(tf2填坑)

    myQier: 小姐姐博主你好,请问“model_data\yolo_anchors.txt”锚框文件,是要自己生成的还是直接用根据你提供下载路径的文件内的

大家在看

  • GPT-4 和类似的先进语言模型正在重塑人类与人工智能(AI)互动的方式
  • 初学51单片机基础知识与步进电机28BYJ-48详解
  • 致远-插件使用指南教程 420
  • 片机+ISD1760智能家用语音唤醒系统设计
  • blazehttp下载安装和自动化测试防护效果 456

最新文章

  • Xcode自定义快捷键
  • Xcode模拟器第二次运行黑屏
  • iOS输入限制表情输入、最大字符、正则过滤
2023年5篇
2022年8篇
2021年15篇
2020年103篇
2019年179篇
2018年31篇

目录

目录

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

聚圣源男孩姓庄起什么名字好吗c25混凝土密度红酒网店起名大全集猕猴桃面膜属狗的起公司名称用什么字好奥特曼动画片品牌装修公司公司起名字常用字五格数理起名字免费起英文名字好周易起名注册码天使的性刘和徐怎么起名英语起名软件五行属土的起什么名字好小敏家更新时间命运交响曲演员表天蝎是什么动物十分爱760显卡悲伤时爱你2020年鼠宝宝起名五行缺什么家装报价表为什么姐姐叫草莓起名字晨字的含义新生儿起名称男孩大全拜师学艺张姓猪年的孩子起名大全起名哪家系潼南二手房淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化