多维下拉框的测试

本文介绍了一种使用JavaScript实现的多级下拉菜单的方法。通过预定义的数据结构,该方法可以动态生成单位、部门和员工的选择列表,并在选择上一级选项时自动更新下一级列表的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=uft-8" />
<title>测试多维下拉列表</title>
<script type="text/javascript">

var arrUnit = new Array();
arrUnit[0] = new Array(0,"u01","unit1");
arrUnit[1] = new Array(0,"u02","unit2");

var arrDept = new Array();
arrDept[0] = new Array("u01","d01","department1");
arrDept[1] = new Array("u01","d02","department2");
arrDept[2] = new Array("u02","d03","department3");
arrDept[3] = new Array("u02","d04","department4");

var arrEmp = new Array();
arrEmp[0] = new Array("d01","e01","employee1");
arrEmp[1] = new Array("d02","e02","employee2");
arrEmp[2] = new Array("d03","e03","employee3");
arrEmp[3] = new Array("d04","e04","employee4");
arrEmp[4] = new Array("d03","e05","employee5");
arrEmp[5] = new Array("d04","e06","employee6");

function body_onload()
{
var TD = GetParent(document.all("s0"), "TD");
TD.innerHTML = MakeMenu(arrUnit, 0, 0, "s0", 1);

TD = GetParent(document.all("s1"), "TD");
TD.innerHTML = MakeMenu(arrDept, GetSelectValue(document.all("s0")), 0, "s1", 1);

TD = GetParent(document.all("s2"), "TD");
TD.innerHTML = MakeMenu(arrEmp, GetSelectValue(document.all("s1")), 0, "s2", 1);

}

function GetParent(src, tag)
{
if (src && src.tagName != tag)
{
return(GetParent(src.parentElement, tag));
}
return src;
}

function GetSelectValue(oSelect)
{
if (oSelect.selectedIndex < 0)
return 0;
return oSelect.options(oSelect.selectedIndex).value;
}

function MakeMenu(arrSub, pValue, cValue, name, bulSkip)
{
var sHTML = "<select name='" + name + "' onchange='SetSubmenu(this)' >";
if(bulSkip) sHTML += "<option value=0>please select</option>";
for(var i=0; i < arrSub.length; i++)
{
if (arrSub[i][0]==pValue)
{
var tag = (arrSub[i][1]==cValue)?" selected>":">";
sHTML += "<option value='" + arrSub[i][1] + "'" + tag + arrSub[i][2] + "</option>";
}
}
sHTML += "</select>";
return sHTML;
}


function SetSubmenu(pSelect)
{
var oOption, sValue;
if (pSelect.selectedIndex < 0) return;
switch (pSelect.name)
{
case "s0":
//TD=s1
var TD = GetParent(document.all("s1"), "TD"); TD.innerHTML = MakeMenu(arrDept, GetSelectValue(document.getElementById("s0")), "0", "s1", 0);
//TD=s2
TD = GetParent(document.all("s2"), "TD");
TD.innerHTML = MakeMenu(arrEmp, GetSelectValue(document.getElementById("s1")), "0", "s2", 0);
break;
case "s1":
var TD = GetParent(document.all("s2"), "TD");
TD.innerHTML = MakeMenu(arrEmp, GetSelectValue(document.getElementById("s1")), "0", "s2", 0);
break;
default:
}
}
</script>
</head>
<body onload="body_onload()">
<TABLE>
<TR>
<TD>
<SELECT id="s0" name="s0" onchange="SetSubmenu(this)"></SELECT>
</TD>
<TD>
<SELECT id="s1" name="s1" onchange="SetSubmenu(this)"></SELECT>
</TD>
<TD>
<SELECT id="s2" name="s2" onchange="SetSubmenu(this)"></SELECT>
</TD>
</TR>
</TABLE>
</body>
</html>


整理成思维导图小程序冬枣的产地识别 1.简介:冬枣产地识别小程序是通过Python语言构造而成,通过调用QT库,从而生成可视化界面,冬枣的光谱和质构数据是以页面点击文件导入。通过调用相关库函数,对冬枣的光谱和质构数据做相关的处理,将高精度光谱仪器的光谱数据,通过学习参数优化模型,将便携式光谱数据作为测试集评价性能,最终用迁移模型预测冬枣的类别。 2.相关库介绍:1.基础库:(1)sys: 提供与 Python 解释器相关的功能,比如可以用来获取当前 Python 解释器的路径、退出程序等。(2)os: 用于与操作系统进行交互,例如获取文件路径、文件名、目录操作等,方便进行文件的读写和路径管理。(3)random: 用于生成随机数,包括随机整数、随机浮点数、随机选择元素等,常用于数据的随机采样和模拟。(4)warnings: 用于显示警告信息,帮助开发者发现潜在的问题,比如代码中可能存在的问题或者过时的用法等。2.数据处理和科学计算库:(1)numpy: 一个强大的科学计算库,提供了高性能的多维数组对象和工具,用于进行各种数学运算,比如矩阵运算、数组操作等,是数据分析和科学计算的基础库。(2)Pandas: 提供了高性能、易用的数据结构和数据分析工具,主要用于数据的清洗、处理和分析,比如数据的读取、筛选、排序、合并等操作。(3)Matplotlib: 用于数据可视化,可以创建各种静态、动态、交互式的图表,帮助用户直观地展示数据的分布、趋势等信息。(4)sklearn: 全称 scikit-learn,是一个强大的机器学习库,提供了多种机器学习算法和工具,包括分类、回归、聚类等算法,以及数据预处理、模型评估等功能。3.图形界面库:(1)pyQt5: 是一个用于创建图形用户界面(GUI)的库,提供了丰富的控件和布局管理工具,可以方便地创建窗口、按钮、表格、图表等界面元素,用于构建交互式的应用程序。(2)QApplication: 应用程序类,用于管理应用程序的控制流和主要设(3)Qwidget: 窗口组件,是所有用户界面对象的基类。(4)QTableView: 表格视图组件,用于显示表格数据。4.调用深度学习库函数,构造模型和对数据进行一系列处理。 3.流程介绍:以下是将代码转换为流程文字介绍的内容: 1.1初始化界面 1.创建一个名为 WineClassify 的类,继承自 QWidget,用于构建整个应用程序的主窗口。 2.在 __init__ 方法中,初始化窗口的基本属性,包括按钮、表格、图表等组件。 3.调用 init_ui 方法,完成界面的初始化和布局设置。 2. 界面初始化(init_ui 方法) 1.设置警告信息忽略,避免不必要的干扰。 2.初始化多个 DataFrame 对象,用于存储不同类型的数据。 3.定义各种数据导入、显示、特征选择和模型训练相关的参数和方法。 4.创建按钮、下拉框等控件,并为它们设置提示信息和点击事件的回调函数。 5.将按钮、下拉框等控件添加到水平布局中,并设置布局参数。 6.创建表格视图、图表画布和设置控件,用于显示数据和图表。 7.将这些控件添加到主布局中,并设置窗口的标题、图标和大小。 8.显示主窗口。 3. 数据导入(import_data 方法) 1.当用户点击“导入近红外文件”按钮时,触发该方法。 2.弹出文件选择对话框,让用户选择要导入的数据文件。 3.检查文件格式,确保是 Excel 或 CSV 文件。 4.使用 pandas 读取文件内容,填充到 input_data 中。 5.根据选择的导入方式(如“导入大型近红外设备训练数据”),将数据存储到相应的 DataFrame 中,并显示提示信息。 6.如果数据不符合要求(如文件为空或缺少标签列),显示错误提示。 4. 数据显示(show_data_slot 方法) 1.当用户点击“显示数据”按钮时,触发该方法。 2.根据当前选择的显示方式(如“显示大型近红外设备训练数据”),检查对应的数据是否存在。 3.如果数据存在,则调用 show_data 方法,将数据展示在表格视图中。 4.如果数据不存在,显示提示信息,要求用户先导入数据。 5. 图表绘制(plot_data_slot 方法) 1.当用户点击“绘制图表”按钮时,触发该方法。 2.根据当前选择的显示方式,检查对应的数据是否存在。 3.如果数据存在,则调用 plot_data 方法,绘制数据图表。 4.如果数据不存在,显示提示信息,要求用户先导入数据。 6. 绘制数据图表(plot_data 方法) 1.清除之前的图表内容。 2.设置图表大小和标题。 3.提取数据中的标签和特征。 4.如果有特征选择后的数据,则使用特征选择后的数据绘制图表。 5.遍历每一行数据,绘制光谱图。
最新发布
03-31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值