выбрать из выпадающего списка на основе выбора из другого выпадающего списка в JSP - PullRequest
0 голосов
/ 16 февраля 2011

У меня есть два выпадающих списка, один со всеми идентификаторами учетных записей и один с соответствующими идентификаторами электронной почты.если я выберу одну запись из идентификатора учетной записи, соответствующий идентификатор электронной почты должен быть выбран автоматически в другом раскрывающемся списке.(Идентификатор учетной записи и идентификаторы электронной почты являются отношениями один к одному. Первый идентификатор соответствия соответствует первому идентификатору электронной почты и т. д.) Как мы можем это сделать в 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>

адреса электронной почты здесь:

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

Ответы [ 2 ]

1 голос
/ 13 февраля 2012

Привет, используйте 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);
}
%>
1 голос
/ 16 февраля 2011

Есть много способов сделать это. Основная идея заключается в использовании javascript (или jQuery или любой другой среды AJAX), чтобы изменить действие формы на «comboUpdate» или что-то еще и отправить эту форму. Действие загрузит только второе комбо и переместится на ту же страницу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...