html与django实现多级数据联动

html与django实现多级数据联动

在这里插入图片描述

1、流程

1、进入页面后先获取年级数据
2、选择年级后获取院级数据
3、选择院级后获取层次数据
4、选择层次数据后获取专业数据

2、html代码

<p style="margin-top: 10px;"><label>年级</label><select id="grade" class="form-control" required="required"name="grade"style="width: 100px; margin-left: 7px"><option id="name" value="">--请选择年级--</option></select></p><p style="margin-top: 10px;"><label>院级</label><select id="school" class="form-control" required="required"name="school"style="width: 100px; margin-left: 7px"><option id="name" value="">--请选择院级--</option></select></p><p style="margin-top: 10px;"><label>层次</label><select id="level" class="form-control" required="required"name="level"style="width: 100px; margin-left: 7px"><option id="name" value="">--请选择层次--</option></select></p><p style="margin-top: 10px;"><label>专业</label><select id="major" class="form-control" required="required"name="major"style="width: 100px; margin-left: 7px"><option id="name" value="">--请选择专业--</option></select></p>

js代码:

<script type="text/javascript">$(document).ready(function () {// 第一层 年级$.ajax({url: '{{ cascade_data }}',type: 'POST',data: {code: 'grade'},success: function (res) {var data = res['info'];for (var i = 0; i < data.length; i++) {$('#grade').append("<option value='" + data[i] + "'>" + data[i] + "</option>")}},error: function (err) {}});// 第二层 院级document.getElementById('grade').onchange = function () {$.ajax({url: '{{ cascade_data }}',type: 'POST',data: {code: 'school',grade_value: this.value,},success: function (res) {var data = res['info'];for (var i = 0; i < data.length; i++) {$('#school').append("<option value='" + data[i] + "'>" + data[i] + "</option>")}},error: function (err) {}});}// 第三层 层次document.getElementById('school').onchange = function () {$.ajax({url: '{{ cascade_data }}',type: 'POST',data: {code: 'level',grade_value: document.getElementById('grade').value,school_value: this.value,},success: function (res) {var data = res['info'];for (var i = 0; i < data.length; i++) {$('#level').append("<option value='" + data[i] + "'>" + data[i] + "</option>")}},error: function (err) {}});}// 第四层 专业document.getElementById('level').onchange = function () {$.ajax({url: '{{ cascade_data }}',type: 'POST',data: {code: 'major',grade_value: document.getElementById('grade').value,school_value: document.getElementById('school').value,level_value: this.value,},success: function (res) {var data = res['info'];for (var i = 0; i < data.length; i++) {$('#major').append("<option value='" + data[i] + "'>" + data[i] + "</option>")}},error: function (err) {}});}// 第五层document.getElementById('major').onchange = function () {$.ajax({url: '{{ cascade_data }}',type: 'POST',data: {code: 'other',grade_value: document.getElementById('grade').value,school_value: document.getElementById('school').value,level_value: document.getElementById('level').value,major_value: this.value,},success: function (res) {document.getElementById('price').value = res['price']document.getElementById('details').value = res['details']document.getElementById('remark').value = res['remark']},error: function (err) {}});}})
</script>

3、djanog代码

urls.py:

from django.urls import pathfrom textbook import viewsurlpatterns = [path("cascade_data/", views.cascade_data, name="cascade_data"),  # 教材级联数据
]

views.py代码:

def cascade_data(request, *args, **kwargs):# 获取级联数据code = request.POST.get('code', '')grade_value = request.POST.get('grade_value', '')school_value = request.POST.get('school_value', '')level_value = request.POST.get('level_value', '')major_value = request.POST.get('major_value', '')# 获取院级数据if code == 'grade':data = []for course in Course.objects.all().values('grade'):if course['grade'] not in data:data.append(course['grade'])return JsonResponse(data={'info': data})# 获取年级数据if code == 'school':data = []for course in Course.objects.filter(grade=grade_value).values('school'):if course['school'] not in data:data.append(course['school'])return JsonResponse(data={'info': data})# 获取层级数据if code == 'level':data = []for course in Course.objects.filter(grade=grade_value, school=school_value).values('level'):if course['level'] not in data:data.append(course['level'])return JsonResponse(data={'info': data})# 获取专业数据if code == 'major':data = []for course in Course.objects.filter(grade=grade_value, school=school_value, level=level_value).values('major'):data.append(course['major'])return JsonResponse(data={'info': data})# 获取其他数据if code == 'other':details = Noneprice = Noneremark = Nonefor course in Course.objects.filter(grade=grade_value, school=school_value, level=level_value,major=major_value):details = course.detailsprice = course.priceremark = course.remarkreturn JsonResponse(data={'details': details, 'price': price, 'remark': remark, })

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/139670.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是微服务自动化测试?

什么是微服务&#xff1f; 微服务 - 也称为微服务架构 - 是一种构建方式&#xff0c;它将应用程序构建为松散耦合服务的集合&#xff0c;具有完整的业务功能。微服务架构允许连续交付/部署大型复杂应用程序。本文将概述自动微服务测试工具和最佳实践。 它还使组织能够发展其技…

Ubuntu诞生已经19年了

导读2004 年 10 月 20 日&#xff0c;Ubuntu 4.10 正式发布&#xff0c;代号‘Warty Warthog’。 2004 年 10 月 20 日&#xff0c;Ubuntu 4.10 正式发布&#xff0c;代号‘Warty Warthog’。 ▲ Ubuntu 4.10 与最新版 Ubuntu 23.10 的对比 作为 Ubuntu 第一个版本&#xff0…

Postman基本页面和请求/响应页签介绍

近期在复习Postman的基础知识&#xff0c;在小破站上跟着百里老师系统复习了一遍&#xff0c;也做了一些笔记&#xff0c;希望可以给大家一点点启发。 一、Postman的界面介绍 Home主页、Workspace工作空间、Collections集合、Environments环境变量、Mock Server虚拟服务器、Mo…

Direct3D粒子系统

粒子和点精灵 粒子(是种微小的物体,在数学上通常用点来表示其模型。所以显示粒子时,使用点图元(由 D3 DPRIMITIVETYPE类型的D3 DPT POINTLIST枚举常量表示)是一个很好的选择。但是光栅化时,点图元将被映射为一个单个像素。这样就无法为我们提供很大的灵活性,因为实际应用…

spring boot 中@Value读取中文配置时乱码

1.spring boot 读取application.properties 该文件是iso8859编码 如果是直接写中文 读取时会乱码 显示成?? 必须得转ascii码才能正常显示 其他方法测试也不行 Value("${apig.order.tiaokong.qianzi}") private String apigOrderTiaokongQianzi;

Spring面试题:(六)Spring注解开发原理

ioc过程 发现只要将bean注册到BeanDefinitionMap中就可以创建bean对象 如何将xml配置的bean注册到BeanDefinitionMap 通过注解注册的bean过程一样 注册bean的接口&#xff1a;BeanDefinitionRegistryPostProcessor 开启组件扫描的两种方式&#xff1a;xml和注解 xml方式…

2020年五一杯数学建模B题基于系统性风险角度的基金资产配置策略分析解题全过程文档及程序

2020年五一杯数学建模 B题 基于系统性风险角度的基金资产配置策略分析 原题再现 近年来&#xff0c;随着改革开放程度的不断提高&#xff0c;我国经济运行中的各种风险逐渐暴露并集中传导和体现于金融领域。党的“十九大”报告提出“守住不发生系统性金融风险的底线”要求&am…

【云备份项目两万字总结】服务端篇 -----附源码

项目总结 整体回顾逐步实现utill.hppconfig.hppdata.hpphot.hppservice.hpp 代码 整体回顾 服务端的目标是&#xff1a; 对客户端的请求进行处理管理客户端上传的文件 于客户端进行数据交换&#xff0c;我们需要引入网络&#xff0c;所以我们引入第三方库----httplib.h库&am…

【见缝插针】射击类游戏-微信小程序项目开发流程详解

还记得小时候玩过的见缝插针游戏吗&#xff0c;比一比看谁插得针比较多&#xff0c;可有趣了&#xff0c;当然了&#xff0c;通过它可以训练自己的手速反应&#xff0c;以及射击水平&#xff0c;把握时机&#xff0c;得分越高就越有成就感&#xff0c;相信小朋友们会喜欢它的&a…

暴力递归转动态规划(十五)

题目 给定一个正数n&#xff0c;求n的裂开方法数&#xff0c; 规定&#xff1a;后面的数不能比前面的数小 比如4的裂开方法有&#xff1a; 1111、112、13、22、04 。 5种&#xff0c;所以返回5 暴力递归 用暴力递归方法进行尝试&#xff0c;整体思路是这样&#xff1a; 暴力递…

边缘分布式机器学习

目录 通信机制同步Synchronous异步Asynchronous半同步/延时同步通信的拓扑结构基于迭代式MapReduce的通信&#xff08;同步模式&#xff09;基于MPI之AllReduce的通信&#xff08;同步模式&#xff09;AllReduce有很多变种 基于参数服务器的通信&#xff08;多为异步&#xff0…

傅里叶分析(1)

1 概述 傅里叶分析是信号分析中常用方法之一。傅里叶分析可将信号在时域和频域之间进行转换&#xff0c;从而分析信号在频域上的特点。 傅里叶分析&#xff08;Fourier analysis&#xff09;根据信号的时域数据特征&#xff0c;分为 4 个类别&#xff1a; 傅里叶级数&#x…

如何在 Python 中执行 MySQL 结果限制和分页查询

Python MySQL 限制结果 限制结果数量 示例 1: 获取您自己的 Python 服务器 选择 “customers” 表中的前 5 条记录&#xff1a; import mysql.connectormydb mysql.connector.connect(host"localhost",user"您的用户名",password"您的密码"…

基于安卓android微信小程序的物流仓储系统

项目介绍 本文以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff0c;它主要是采用java语言技术和mysql数据库来完成对系统的设计。整个开发过程首先对物流仓储系统进行需求分析&#xff0c;得出物流仓储系统主要功能。接着对物流仓储系统进行总体设计和详细…

Vue.Draggable 踩坑:add 事件与 change 事件中 newIndex 字段不同之谜

背景 最近在弄自定义表单&#xff0c;需要拖动组件进行表单设计&#xff0c;所以用到了 Vue.Draggable(中文文档)。Vue.Draggable 是一款基于 Sortable.js 实现的 vue 拖拽插件&#xff0c;文档挺简单的&#xff0c;用起来也方便&#xff0c;但没想到接下来给我遇到了灵异事件……

PySide/PYQT如何用Qt Designer和代码来设置文字属性,如何设置文字颜色?

文章目录 📖 介绍 📖🏡 环境 🏡📒 实现方法 📒📝 Qt Designer设置📝 代码📖 介绍 📖 本人介绍如何使用Qt Designer/代码来设置字体属性(包含字体颜色) 🏡 环境 🏡 本文使用Pyside6来进行演示📒 实现方法 📒 📝 Qt Designer设置 首先打开Qt De…

如何在ModelScope社区魔搭下载所需的模型

本篇文章介绍如何在ModelScope社区下载所需的模型。 若您需要在ModelScope平台上有感兴趣的模型并希望能下载至本地&#xff0c;则ModelScope提供了多种下载模型的方式。 使用Library下载模型 若该模型已集成至ModelScope的Library中&#xff0c;则您只需要几行代码即可加载…

mysql8安装和驱动jar包下载

方式一&#xff1a;基于docker安装 下拉镜像 docker pull mysql:8.0.21 启动镜像 docker run -p 3307:3306 --name mysql -e MYSQL_ROOT_PASSWORDhadoop -d mysql:8.0.21 启动成功后&#xff0c;进入容器内部拷贝配置文件&#xff0c;到宿主主机 docker cp mysql:/etc/mysql…

人工智能基础——图像认知与OpenCV

人工智能的学习之路非常漫长&#xff0c;不少人因为学习路线不对或者学习内容不够专业而举步难行。不过别担心&#xff0c;我为大家整理了一份600多G的学习资源&#xff0c;基本上涵盖了人工智能学习的所有内容。点击下方链接,0元进群领取学习资源,让你的学习之路更加顺畅!记得…

pandas笔记:读写excel

1 读excel read_excel函数能够读取的格式包含&#xff1a;xls, xlsx, xlsm, xlsb, odf, ods 和 odt 文件扩展名。 支持读取单一sheet或几个sheet。 1.0 使用的数据 1.1 主要使用方法 pandas.read_excel(io, sheet_name0, header0, namesNone, index_colNone, usecolsNon…