2012-02-15 114 views
0

我在html中有两个下拉列表。这两个下拉列表正在获取数据MySQL第一下拉是“主机组”有像“Windows,Linux”的价值和第二下拉是“主机”有价值像“办公室,家庭,sidearea,本地主机”如何根据以前的下拉值筛选后选择html下拉值

基本上我想这样做当我选择“linux”是hostgroup combobox时,它将过滤“主机”下拉框并在“主机”下拉列表中仅显示localhost,当我在主机组下拉列表中选择“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是什么,我是什么s选项值来自

其实我正在使用字符串生成器追加我的字符​​串生成器HTML在​​文件并调用jsp中的类html附加方法。它工作正常,下拉的选项值从ResultSet rs and rshost填充有来自mysql的数据。

回答

2

首先使用java构建HTML元素是一个非常糟糕的主意。 使用JSTL循环下拉选项,而不是使用Java来吐出HTML代码。其次,您提到的问题与Java无关,以及与JavaScript有关的所有问题。

嗯,并非完全正确,因为您可能必须向服务器发出AJAX请求才能获取值以填充辅助下拉框。

你需要做的是为主下拉附加一个onChange监听器,以便当它改变你的javascript代码时,或者让AJAX调用服务器来获取你的辅助下拉框的值,或者使用某些javascript中保存的硬编码值变量。

您必须遍历二级下拉列表以删除所有先前的值并向其添加新的下拉选项,或者您也可以完全删除二级下拉框并使用基于主下拉列表选项的新值重新创建它框。 互联网上已经有足够多的文章,所以请使用你的恶魔Google来找到适合你需求的文章。