excel表格二级联动,当第一列是“一班”时第二列下拉框只有“小明”和“小红”,当第一列是“二班”时第二列下拉框只有“小黄”和“小黑”
时间: 2023-12-15 07:03:28 浏览: 182
Excel表格的二级联动可以通过数据验证和IF函数来实现。以下是具体步骤:
1. 在第一列输入“一班”和“二班”;
2. 在第二列输入“小明”、“小红”、“小黄”和“小黑”;
3. 选中第二列的单元格,点击“数据”选项卡中的“数据验证”;
4. 在弹出的对话框中选择“列表”作为验证条件,然后在“来源”中输入以下公式:
=IF(A1="一班",$B$1:$B$2,$B$3:$B$4)
其中,A1是第一列的单元格,$B$1:$B$2是第一种情况下的可选项,$B$3:$B$4是第二种情况下的可选项;
5. 点击“确定”保存设置。
这样,当你在第一列选择“一班”时,第二列下拉框只会显示“小明”和“小红”,选择“二班”时只会显示“小黄”和“小黑”。
相关问题
下拉框二级联动数据库
下拉框二级联动数据库的实现需要前端和后端的配合,前端需要通过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)
```
layui下拉框二级联动
在 layui 中实现下拉框的二级联动比较简单,你可以通过监听第一个下拉框的 change 事件,在事件回调函数中动态加载第二个下拉框的数据。
首先,需要在页面中引入 layui 的相关资源文件。然后,定义两个 select 元素,分别代表第一个和第二个下拉框。
```html
<!-- 引入 layui 的相关资源文件 -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/layui@2.5.7/dist/css/layui.css">
<script src="https://cdn.jsdelivr.net/npm/layui@2.5.7/dist/layui.js"></script>
<!-- 定义第一个下拉框 -->
<select id="select1" lay-filter="select1">
<option value="">请选择</option>
<option value="1">选项1</option>
<option value="2">选项2</option>
<option value="3">选项3</option>
</select>
<!-- 定义第二个下拉框 -->
<select id="select2" lay-filter="select2">
<option value="">请选择</option>
</select>
```
接下来,初始化 layui 并监听第一个下拉框的 change 事件。
```javascript
<script>
layui.use(['form'], function(){
var form = layui.form;
// 监听第一个下拉框的 change 事件
form.on('select(select1)', function(data){
var value = data.value; // 获取选中的值
// 根据选中值加载第二个下拉框的数据
loadSelect2Data(value);
});
// 加载第二个下拉框的数据
function loadSelect2Data(value) {
// 根据选中值发送异步请求获取数据
// 假设根据选中值 value 获取到的数据为 data
var data = [
{value: '11', text: '选项11'},
{value: '12', text: '选项12'},
{value: '13', text: '选项13'}
];
var select2 = document.getElementById('select2');
select2.innerHTML = ''; // 清空第二个下拉框的选项
// 动态添加选项
data.forEach(function(item){
var option = document.createElement('option');
option.value = item.value;
option.innerText = item.text;
select2.appendChild(option);
});
// 重新渲染第二个下拉框
form.render('select');
}
});
</script>
```
这样,当第一个下拉框的选中值发生改变时,就会触发 change 事件回调函数,动态加载第二个下拉框的数据。请根据实际需求修改 loadSelect2Data 函数中的异步请求部分,以获取正确的数据。
阅读全文