Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据jsp中另一个下拉列表的选择从下拉列表中选择_Jsp_Struts - Fatal编程技术网

根据jsp中另一个下拉列表的选择从下拉列表中选择

根据jsp中另一个下拉列表的选择从下拉列表中选择,jsp,struts,Jsp,Struts,我有两个下拉列表,一个带有所有帐户ID,另一个带有相应的电子邮件ID。如果我从帐户id中选择一个条目,则应在另一个下拉列表中自动选择相应的电子邮件id。(帐户id和电子邮件id是一对一的关系。第一个帐户id对应第一个电子邮件id等)我们如何在JSP中做到这一点 在这里查看我的下拉列表: <td> 1. Member Account Number <span class="bodyCopy"> <font color="#ff0000">

我有两个下拉列表,一个带有所有帐户ID,另一个带有相应的电子邮件ID。如果我从帐户id中选择一个条目,则应在另一个下拉列表中自动选择相应的电子邮件id。(帐户id和电子邮件id是一对一的关系。第一个帐户id对应第一个电子邮件id等)我们如何在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>

1.会员帐号
* 
: 
电子邮件ID位于此处:

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

3.成员
电子邮件地址:

有很多方法可以做到这一点。基本思想是使用javascript(或jQuery或任何其他AJAX框架)将表单的操作更改为“comboUpdate”或其他内容,然后提交表单。该操作将只加载第二个组合并转发到同一页面。

嗨,使用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>

//用于从数据库检索日期的AJAX代码
var-xmlHttp;
var-xmlHttp;
函数showEmp(str){
if(XMLHttpRequest的类型!=“未定义”){
xmlHttp=新的XMLHttpRequest();
}
else if(window.ActiveXObject){
xmlHttp=新的ActiveXObject(“Microsoft.xmlHttp”);
}
if(xmlHttp==null){
警报(“浏览器不支持XMLHTTP请求”);
返回;
} 
var url=“selEmp.jsp”;
url+=“?count=“+str;
xmlHttp.onreadystatechange=stateChange;
open(“GET”,url,true);
xmlHttp.send(空);
}
函数stateChange()
{   
if(xmlHttp.readyState==4 | | xmlHttp.readyState==complete)
{   
document.getElementById(“batchdate”).innerHTML=xmlHttp.responseText
}   
}
挑选

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