python三级联动菜单_Excel–这才是三级联动下拉菜单的正确做法

Excel–这才是三级联动下拉菜单的正确做法,跟二级联动菜单完全不同! 文章来源:企鹅号 - Excel学习世界 今天教大家制作三级联动下拉菜单。

很多同学以为三级联动下拉做法跟二级联动下拉菜单是一样的,举一反三即可。其实不然!因为第三级要考虑的不仅仅是二级菜单的选择,而是一、二级菜单的组合情况,网上有很多教程是错的,恰恰就是因为忽略了这个关键点。

现在就跟着案例来学习正确的做法。

案例:

下图是学校某兴趣小组的人员名单,请给以下三列数据制作三级联动下拉菜单。

dab29f67aa7496b1a77c4d0b9f42f0f9.png

解决方案:

数据整理:

将原始表格的数据拆分开来,按以下样式整理:

年级及其对应的班级:从这个列表可以看出,参加兴趣小组的同学并不是每个班都有,所以每个年级对应的班级列表各不相同

年级班级对应的同学:从这个表格就不难理解了,三级下拉菜单不仅要考虑二级菜单选项(即“班级”),还要考虑一级菜单选项(即“年级”)

制作一级下拉菜单:

选中需要制作下拉菜单的单元格 --> 选择菜单栏的“数据”-->“数据验证”

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
三级联动下拉菜单通常用于根据用户选择的前两个选项,态加载第三个选项的内容。在 Django 中,可以通过 AJAX 请求来实现这个功能。 下面是一个简单的示例,假设你要实现一个三级联动的省市县选择: 首先,在 Django 中定义三个模型,分别表示省、市和县: ```python class Province(models.Model): name = models.CharField(max_length=50) class City(models.Model): name = models.CharField(max_length=50) province = models.ForeignKey(Province, on_delete=models.CASCADE) class County(models.Model): name = models.CharField(max_length=50) city = models.ForeignKey(City, on_delete=models.CASCADE) ``` 然后,在视图中定义三个函数,分别用于返回省、市和县的数据: ```python from django.http import JsonResponse def get_provinces(request): provinces = Province.objects.all() data = [{'id': p.id, 'name': p.name} for p in provinces] return JsonResponse({'data': data}) def get_cities(request, province_id): cities = City.objects.filter(province_id=province_id) data = [{'id': c.id, 'name': c.name} for c in cities] return JsonResponse({'data': data}) def get_counties(request, city_id): counties = County.objects.filter(city_id=city_id) data = [{'id': c.id, 'name': c.name} for c in counties] return JsonResponse({'data': data}) ``` 这三个函数都返回一个 JSON 格式的数据,其中包含了对应模型的 id 和 name 字段。 最后,在模板中使用 AJAX 请求来态加载下拉菜单的选项。下面是一个简单的示例: ```html <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <script> $(document).ready(function() { $('#province').change(function() { var province_id = $(this).val(); if (province_id) { $.ajax({ url: '/get_cities/' + province_id, success: function(data) { var options = '<option value="">选择城市</option>'; for (var i = 0; i < data.data.length; i++) { options += '<option value="' + data.data[i].id + '">' + data.data[i].name + '</option>'; } $('#city').html(options); $('#county').html('<option value="">选择县区</option>'); } }); } else { $('#city').html('<option value="">选择城市</option>'); $('#county').html('<option value="">选择县区</option>'); } }); $('#city').change(function() { var city_id = $(this).val(); if (city_id) { $.ajax({ url: '/get_counties/' + city_id, success: function(data) { var options = '<option value="">选择县区</option>'; for (var i = 0; i < data.data.length; i++) { options += '<option value="' + data.data[i].id + '">' + data.data[i].name + '</option>'; } $('#county').html(options); } }); } else { $('#county').html('<option value="">选择县区</option>'); } }); $.ajax({ url: '/get_provinces/', success: function(data) { var options = '<option value="">选择省份</option>'; for (var i = 0; i < data.data.length; i++) { options += '<option value="' + data.data[i].id + '">' + data.data[i].name + '</option>'; } $('#province').html(options); $('#city').html('<option value="">选择城市</option>'); $('#county').html('<option value="">选择县区</option>'); } }); }); </script> <select name="province" id="province"></select> <select name="city" id="city"></select> <select name="county" id="county"></select> ``` 在这个例子中,我们使用了 jQuery 来发送 AJAX 请求,并态更新下拉菜单的选项。当用户选择省份时,我们发送一个请求来获取对应的城市数据,并生成 city 下拉菜单的选项。当用户选择城市时,我们发送另一个请求来获取对应的县区数据,并生成 county 下拉菜单的选项。 最后,我们在页面加载完成后,发送一个请求来获取省份数据,并生成 province 下拉菜单的选项。

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值