2011-02-16 7 views
0

J'ai deux liste déroulante, une avec tous les identifiants de compte et une avec les ID email correspondants. Si je sélectionne une entrée à partir de l'identifiant de compte, l'adresse email correspondante doit être automatiquement sélectionnée dans l'autre liste déroulante. (Identifiant de compte et email-ids sont une relation one-to-one.) Le premier identificateur d'accound correspond au premier email address etc.) comment pouvons-nous faire cela dans JSP?sélectionnez à partir d'une liste déroulante basée sur la sélection d'une autre liste déroulante dans jsp

voir mes menus déroulants ici:

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

email-ids sont ici:

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

Répondre

1

Il y a beaucoup de façons de le faire. L'idée de base est d'utiliser javascript (ou jQuery ou tout autre framework AJAX) pour changer l'action du formulaire en "comboUpdate" ou quelque chose et soumettre ce formulaire. L'action ne chargera que le second combo et passera à la même page.

1

Salut utiliser Ajax pour récupérer les valeurs de base de données utilisant la boîte de sélection, cela pourrait vous aider à

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); 
} 
%> 
Questions connexes