django:下拉框二级联动实现
注意:只列举核心部分代码
前台模板:
第一级下拉菜单:
<div class="col-sm-4">
<select data-placeholder="选择项目..." class="form-control" name="project_id" id="db_link" required="required">
<option value="">请选择数据库连接</option>
{% for item in res %}
<option value="{{ item.id }}" hassubinfo="true">{{ item.link_name }}</option>
{% endfor %}
</select> </div>
第二级下拉菜单:
<div class="col-sm-4">
<select data-placeholder="选择基础表." class="form-control" name="project_id" id="db_table" required="required">
// 这里放置回调函数渲染的内容
</select>
</div>
对应js:
<script>
$("#db_link").change(function() {
var options=$("#db_link option:selected"); //获取选中的项
var db_link_id = options.val(); //获取选中的值
{#alert("ok");#}
alert(db_link_id); // 选择id=db_link的元素时触发该ajax请求,调用/comparison/get_table接口
$.ajax({
url: '/comparison/get_table',
data: {"db_link_id": db_link_id},
type: 'GET',
dataType: 'json',
success: function (data) {
var content='';
{#alert(123456);#}
$.each(data, function(i, item){
// 调用接口后返回list数据[u'account_role', u'account_user'],循环遍历该list拼接选项的内容
content+='<option value='+item+'>'+item+'</option>'
});
// 将拼接好的内容作为id=db_table这个select元素的内容
$('#db_table').html(content)
},
}) })
</script>
视图函数:
def get_table(request):
"""
当选择数据库连接时,联动查询出该库的表,供下拉选择
:return:
"""
if request.method == 'GET':
# 获得前台传递来的id,查询对应的数据库连接信息
db_link_id = request.GET.get('db_link_id')
print '从前台获得的id为:%s' % db_link_id
# 获取数据库类型和数据库名称
db_link_info = LinkDBInfo.objects.get(id=db_link_id)
# 当使用model_to_dict时orm只能是get,不能是filter
db_link_info_dict = model_to_dict(db_link_info)
print db_link_info_dict
# 根据不同数据库类型选择不同的连接库方式
if db_link_info_dict['type'] == 'mysql': conn = pymysql.connect(db_link_info_dict['host'], db_link_info_dict['db_username'], db_link_info_dict['db_pwd'], db_link_info_dict['db_name'], charset='utf8')
cursor = conn.cursor()
# db_name = "select db_name from comparison_linkdbinfo where id='%s'" % db_link_id
# print db_name
# 查询该库中的所有表
get_all_table_sql = "select table_name from information_schema.tables where table_schema= '%s'" % db_link_info_dict['db_name']
cursor.execute(get_all_table_sql)
data = list(cursor.fetchall())
print data
table_list = []
for i in data:
table_list.append(i[0])
# print data_list
print table_list
return JsonResponse(table_list, safe=False)
django:下拉框二级联动实现的更多相关文章
- C# MVC LayUI实现下拉框二级联动
一.layui.use 1.LayUI的官方使用文档:https://www.layui.com/doc/ 2.layui的内置模块不是默认就加载好的,必须要执行启动模块的这种方法后模块才会加载: 3 ...
- asp 下拉框二级联动
<script language = "JavaScript"> //js开始 var aaa;//定义aaa变量 aaa=0;//aaa赋0 bb = new Arr ...
- js下拉框二级关联菜单效果代码具体实现
这篇文章介绍了js下拉框二级关联菜单效果代码具体实现,有需要的朋友可以参考一下 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit ...
- ASP.NET——实现两个下拉框动态联动
引入: 在网页中,我们经常会遇到下图中的情况.首先在下拉框中选择所在的省,选择之后,第二个下拉框会自动加载出该省中的市.这样设计极大的方便了用户的查找.那这是如何实现的呢? 1.建立数据库 " ...
- 通过创建元素从而实现三个下拉框的联动效果(create.Element("option"))和提交表单时的验证p.match("请选择")
<html> <head> <meta charset="utf-8"> <title>下拉框</title> < ...
- Excel下拉选项二级联动
在日常工作中,难免遇到操作excel的时候,二级联动下拉选项多用于像地市区县的应用场景 1)先把要联动的内容准备好,把它放到第二个sheet页中 2)操作级联的文本 全部选中之后,Ctrl+G -- ...
- WebForm使用AngularJS实现下拉框多级联动
数据准备 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, CateId = , ...
- 下拉框多级联动辅助js,优化您的下拉框
function IniteSelect(options) { $("body").IniteSelect(options) } (function ($) { $.fn.Init ...
- vue 获取数据联动下拉框select ,并解决报Duplicate value found in v-for="...": "". Use track-by="$index" 错误
公司项目中遇到一个问题,联动下拉框,并且数据是使用vue-resource从后台获取的,格式不利于输出联动下拉框,联动下拉框是第一个下拉框输出一个数组里每一项json的一个text值,从而第二下拉框输 ...
随机推荐
- *P2398 GCD SUM[数论]
题目描述 for i=1 to n for j=1 to n sum+=gcd(i,j) 解析 给出n求sum. gcd(x,y)表示x,y的最大公约数. 直接枚举复杂度为\(O(n^2)\),显然无 ...
- 【Selenium-WebDriver实战篇】Java丨验证码图片去除干扰像素,方便验证码的识别(转)
参考地址:https://www.cnblogs.com/haojieli/p/6212627.html 1.先来看看效果: 原图 除去干扰像素后 2.解析代码: 1).读取文件夹里面的图片 1 St ...
- shell部分面试题
1.用Shell编程,判断一文件是不是块或字符设备文件,如果是将其拷贝到 /dev 目录下. #!/bin/bash#1.sh#判断一文件是不是字符或块设备文件,如果是将其拷贝到 /dev 目录下#f ...
- django-改写manage类-objects
user/models.py中 class AddressManage(models.Manager): '''地址模型管理类''' def get_default_addr(self, user): ...
- IDEA设置类注释和方法注释模板
背景 在日常开发中,类和方法上希望有属于自己风格的注释模板,此文将记录如何设置IDEA类和方法注释模板. 注意:如果公司有统一的规范模板,请按照公司提供的规范模板去设置,这样可以统一代码注释风格.当然 ...
- 1-移远GSM/GPRS M26 模块 Mini板 开发板(使用说明)
板子预览 引脚说明 供电 关于串口电压匹配引脚: 上面一版朋友测试反应的问题 (上面的内容不删除,因为已经出售了1套) 1,源码开发完以后,烧录完成 PWRKEY按键不能使用了,需要断电上电,那么就需 ...
- 结构体&文件
1.本章学习内容总结 1.1学习内容总结 什么是结构类型? 结构Structure类型是一种允许程序员把一些数据分量聚合成一个整体的数据类型. 结构和数组的区别? 结构和数组的最大区别是数组中所有元素 ...
- Edusoho之X-Auth-Token
昨天这篇文章Edusoho之Basic Authentication提到了X-Auth-Token.今天我主要讲的是Edusoho之X-Auth-Token的请求API方式. 至于为什么建议不要用HT ...
- 3ds Max学习日记(十一)——如何给模型上贴图
参考链接:https://jingyan.baidu.com/article/e4511cf38a810b2b845eaf1f.html 之前一直都不知道怎么在3dsMax里给模型上材质和贴图,被 ...
- 团队作业-Beta冲刺(4/4)
队名:软工9组 组长博客:https://www.cnblogs.com/cmlei/ 作业博客:https://edu.cnblogs.com/campus/fzu/SoftwareEngineer ...