2013-02-09 140 views
0

我有在JSP 1个组合框中填充有值从SQL数据库上的形式的负载填充组合框

<td width="150"> 
     <% 
     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
     Connection cn = DriverManager.getConnection("jdbc:odbc:mydsn");; 
      Statement s = cn.createStatement(); 

      ResultSet re = s.executeQuery("select distinct From1 from station"); 
     %> 

     <select> 
     <% 
     while (re.next()) { 
      String un = re.getString("From1"); 
     %> 
     <option value="<%= un%>"><%= un%></option> 
     <% 
     } 
     %> 
     </select> 
</td> 

我已经在其下方的另一个组合框,我希望它被填充的基础上第一个组合框的选定值... PLZ帮助代码

+0

Scriptlets已过时,请使用sql-jslt样式。 stackoverflow.com/questions/7697041/how-to-use-jstl-sql-tag – 2013-02-11 11:14:22

回答

0

首先我更喜欢JQuery框架。

那么,你应该使用AJAX,将选择的值传递给指向Java-Servlet的URL并在那里执行逻辑。

$.ajax({ 
data: 'value=option', 
type: 'POST', 
url: 'processDataServlet.jsp' 
success: function (data) { 
    $('td').append(data); 
} 
}); 

否则,你可以使用一个简单的JavaScript“如果”条件,如果你有已经加载条件下的数据:

<option onSelected="checkCondition($(this))" value="...." .... /> 


function checkCondition(var element) { 
var val = element.val(); 
if(val = "myValue") { 
    alert("Value selected"); 
} 
} 
0

好吧,这听起来像一个单页的向导。

假设你有这样的constalation:

<form method="get" name="blah"> 
    <select name="first">...</select> 
    <select name="second">...</select> 
</form> 

所以有形式的三种状态:

  1. 空(没有选择)
  2. 半(第一个下拉列表填充)
  3. 全部(第一个和第二个下拉满)

第一阶段由no-request-params标识。

第二阶段由request-param“first”的存在标识。

第三个完整状态通过请求参数“第一个”和“第二个”的存在来标识。

的解决方案是容易的:

  1. 重复您的代码
  2. 名称的选择了“第一”和“第二”的例子英寸
  3. 周边的第二部分,一个encapsul “如果(用request.getParameter(” 第一 “)!= NULL){” 和 “}”
  4. 添加JavaScript侦听到第一选择等

    onchange="document.forms.blah.submit()";