在运行时jsp填充组合框

时间:2013-02-09 15:56:18

标签: jsp combobox runtime

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

我在它下面有另一个组合框,我想在第一个组合框的选定值的基础上填充... plz帮助代码

2 个答案:

答案 0 :(得分: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");
 }
}

答案 1 :(得分:0)

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

假设你有这个问题:

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

因此表格中有三种状态:

  1. 清空(未选中)
  2. 一半(第一次下拉)
  3. 完整(第一次和第二次下拉填充)
  4. 第一阶段由no-request-params确定。

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

    第三种,即满状态,由请求参数“第一”和“第二”的存在来识别。

    解决方案很简单:

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

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