2013-02-09 214 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()";