0

我在jsp中有1个组合框,它在加载表单时填充了来自sql db的值

  <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>

我在它下面有另一个组合框,我希望根据第一个组合框的选定值来填充它...请帮助代码

4

2 回答 2

0

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

假设你有这个星座:

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

所以表格有三种状态:

  1. 空(未选择)
  2. 一半(第一个下拉列表已填充)
  3. 完整(第一个和第二个下拉列表已填充)

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

第二阶段由请求参数“first”的存在来标识。

第三个,完整状态,由请求参数“first”和“second”的存在来标识。

解决方案很简单:

  1. 复制你的代码
  2. 在示例中将选择命名为“第一”和“第二”。
  3. 在第二部分周围,封装了一个 "if(request.getParameter("first")!=null) {" 和 "}"
  4. 将 javascript-listener 添加到第一个选择中,例如

    onchange="document.forms.blah.submit()";
    
于 2013-02-11T11:10:21.157 回答
0

首先,我更喜欢 JQuery 框架。

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

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

否则,如果您已经加载了该条件的数据,则可以使用简单的 JavaScript“if”条件:

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


function checkCondition(var element) {
 var val = element.val();
 if(val = "myValue") {
   alert("Value selected");
 }
}
于 2013-02-11T07:44:11.023 回答