我在html中有两个下拉列表。两个下拉列表都是获取数据mysql第一个下拉列表是“hostgroup”,其值如“windows,linux”,第二个下拉列表是“host”,其值类似于“office,home,sidearea,localhost”
基本上我想这样做,所以当我选择“linux”是hostgroup组合框时,它会过滤“host”下拉框并在“host”下拉列表中只显示localhost,当我在hostgroup下拉列表中选择“windows”时,它会过滤它并从主机下拉列表中删除localhost
我在html中填写下拉列表的代码是,
html.append("<select id='hosts' name='hosts' style='width: 180px' onchange=\"document.forms['form1'].submit();\">>");
//if(rs != null)
//{
while(rshostgroup.next())
{
html.append("<option value='"+rshostgroup.getString(2)+"'>"+rshostgroup.getString(1)+"</option>");
//html.append("<option value='web'>web</option>");
}
//}
html.append("<select>");
html.append("</td>");
html.append("</tr>");
html.append("<tr>");
html.append("<td>");
html.append("Host");
html.append("</td>");
html.append("<td>");
html.append("<select id='hosts' name='hosts' style='width: 180px' onchange=\"document.forms['form1'].submit();\">>");
//if(rs != null)
//{
while(rshost.next())
{
html.append("<option value='"+rshost.getString(2)+"'>"+rshost.getString(1)+"</option>");
//html.append("<option value='web'>web</option>");
}
//}
html.append("<select>");
请不要混淆html.append是什么以及来自
的选项值是什么实际上我正在使用字符串构建器在.java(class)
文件中附加我的字符串构建器html并在jsp中调用类html附加方法。它工作正常,下拉的选项值来自ResultSet rs and rshost
来自mysql的数据。
答案 0 :(得分:2)
首先使用java构建HTML元素是一个非常糟糕的主意。 使用JSTL遍历下拉选项,而不是使用Java来吐出HTML代码。 其次,你提到的问题与Java无关,而与JavaScript无关。
嗯,不完全正确,因为您可能需要向服务器发出AJAX请求获取值以填充辅助下拉框。
您需要做的是为主要下拉列表附加一个onChange侦听器,以便在更改您的javascript代码时对服务器进行AJAX调用以获取辅助下拉框的值,或者使用某些javascript变量中保存的硬编码值
您必须遍历辅助下拉列表以删除所有先前的值并向其添加新的下拉选项,或者您可以完全删除辅助下拉框并根据主要下拉框的选择使用新值重新创建它。 互联网上已有足够多的文章,所以请用你的恶魔谷歌找到最适合你需求的文章。