2011-02-16 119 views
0

我有兩個下拉列表,其中一個包含所有帳戶ID,另一個包含相應的電子郵件ID。如果我從帳戶ID中選擇一個條目,則應在其他下拉列表中自動選擇相應的電子郵件ID。 (帳戶ID和電子郵件ID是一對一的關係,第一個帳戶ID對應於第一個電子郵件ID等)我們如何在JSP中做到這一點?根據jsp中另一個下拉列表中的選擇從下拉列表中進行選擇

看到我的下拉列表中的位置:

<td> 
1. Member Account Number 
    <span class="bodyCopy"> 
     <font color="#ff0000"> * </font> 
    </span>: 
    <html:select name="DataForm" 
       property="Member.accountNumber" 
       styleClass="formContent" 
      style="width:80px"> 

     <html:options collection="<%= WorkConstants.RENewDropdowns.PACCT %>" 
         property="value" 
         labelProperty="label" 
         styleClass="formContent"/> 
    </html:select> 
</td> 

電子郵件的IDS在這裏:

<td> 
3. Member <br>E-mail Address:<br /> 
    <span class="bodyCopy"></span> 

    <html:select name="DataForm" 
       property="Member.emailAddress.emailAddress" 
       style = "width:150px" 
       styleClass="formContent"> 

    <html:options collection="<%= WorkConstants.RENewDropdowns.PEMAIL %>" 
         property="value" 
         labelProperty="label" 
         styleClass="formContent"/> 
</html:select> 
</td> 

回答

1

有很多方法可以做到這一點。基本思想是使用javascript(或jQuery或任何其他AJAX框架)將表單的動作更改爲「comboUpdate」或其他內容並提交該表單。該動作只會加載第二個組合並轉發到同一頁面。

1

嗨使用Ajax使用選擇框從數據庫中檢索值,這可能會幫助你

1.mainpage.jsp

<%@page import="java.sql.*"%> 
    <html> 
    <head> 
    <script language="javascript" type="text/javascript"> 
//AJAX code for retrieving dates from database 
    var xmlHttp; 
    var xmlHttp; 
    function showEmp(str){ 
    if (typeof XMLHttpRequest != "undefined"){ 
    xmlHttp= new XMLHttpRequest(); 
    } 
    else if (window.ActiveXObject){ 
    xmlHttp= new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    if (xmlHttp==null){ 
    alert("Browser does not support XMLHTTP Request"); 
    return; 
    } 
    var url="selEmp.jsp"; 
    url +="?count=" +str; 
    xmlHttp.onreadystatechange = stateChange; 
    xmlHttp.open("GET", url, true); 
    xmlHttp.send(null); 
    } 
function stateChange() 
    { 
    if(xmlHttp.readyState==4 || xmlHttp.readyState=="complete") 
    { 
    document.getElementById("batchdate").innerHTML=xmlHttp.responseText 
    } 
    } 

    </script> 
    </head> 
    <body> 
    <select name='batch' onchange="showEmp(this.value)"> 
    <option value="none">Select</option> 
    <% 
Class.forName("com.mysql.jdbc.Driver").newInstance(); 
Connection con = DriverManager.getConnection("jdbc:mysql://192.168.40.120:3306/cjet","root","root"); 
Statement stmt = con.createStatement(); 
ResultSet rs = stmt.executeQuery("Select * from cjet.batch"); 
while(rs.next()){ 
%> 
    <option value="<%=rs.getString("bname")%>"><%=rs.getString("bname")%></option> 
    <% 
} 
%> 
    </select> 
    <br> 
    <div id='batchdate'> 
    <select name='batchdate' onchange="showCustomer(this.value)"> 
    <option value='-1'></option> 
    </select> 
    </div> 
    </body> 
    </html> 

2.retrieve.jsp

<%@page import="java.sql.*"%> 
<% 
String no=request.getParameter("count"); 
String buffer="<select name='batchdate' onchange='showCustomer(this.value)'><option value='-1'>Select</option>"; 
try{ 
Class.forName("com.mysql.jdbc.Driver").newInstance(); 
Connection con = DriverManager.getConnection("jdbc:mysql://192.168.40.144:3306/cjet","root","root"); 
Statement stmt = con.createStatement(); 
ResultSet rs = stmt.executeQuery("Select * from cjet.batchdate where bname='"+no+"' "); 
while(rs.next()){ 
buffer=buffer+"<option value='"+rs.getString(1)+"'>"+rs.getString("courseID")+" </option>"; 
}         
buffer=buffer+"</select>"; 
response.getWriter().println(buffer); 
} 
catch(Exception e) 
{ 
System.out.println(e); 
} 
%> 
相關問題