0

私はフォームのロード時にSQL dbからの値で満たされているjspに1つのコンボボックスを持っています

  <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

わかりました、これは 1 ページのウィザードのように聞こえます。

このコンスタレーションがあると仮定します:

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

したがって、フォームには 3 つの状態があります。

  1. 空 (何も選択されていません)
  2. 半分 (最初のドロップダウンが入力されました)
  3. フル (1 番目と 2 番目のドロップダウンが満たされている)

最初のフェーズは、no-request-params によって識別されます。

2 番目のフェーズは、request-param "first" の存在によって識別されます。

3 番目の Full 状態は、request-params の「first」と「second」の存在によって識別されます。

解決策は簡単です:

  1. コードを複製する
  2. 例では、select に「first」と「second」という名前を付けます。
  3. 2 番目の部分の周りに、"if(request.getParameter("first")!=null) {" と "}" をカプセル化します。
  4. 次のような最初の選択にjavascript-listenerを追加します

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

まず第一に、これには JQuery フレームワークを好みます。

AJAX を使用し、選択した値を Java サーブレットを指す 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 に答える