Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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
如何在ajax(JSP)中传递选定的下拉值?_Ajax_Jsp_Dropdown - Fatal编程技术网

如何在ajax(JSP)中传递选定的下拉值?

如何在ajax(JSP)中传递选定的下拉值?,ajax,jsp,dropdown,Ajax,Jsp,Dropdown,我 在我的web应用程序中,我使用动态下拉菜单选择 班级、部门和学生id。选择班级时,请选择部门 下拉列表根据所选类别填充。。同样地 学生识别下拉列表通过获取班级和分区来填充 我的问题是我不能同时将类值和除法值传递给jsp页面 My Home.jsp。代码为.. <%@page import="java.sql.*"%> <html> <head> <script language="javascript" type

在我的web应用程序中,我使用动态下拉菜单选择 班级、部门和学生id。选择班级时,请选择部门 下拉列表根据所选类别填充。。同样地 学生识别下拉列表通过获取班级和分区来填充

我的问题是我不能同时将类值和除法值传递给jsp页面

My Home.jsp。代码为..

    <%@page import="java.sql.*"%>
 <html>
      <head>  
      <script language="javascript" type="text/javascript">  
      var xmlHttp  
      var xmlHttp


      function showdivision(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="divisionn.jsp";
      url +="?passclassname=" +str;
      xmlHttp.onreadystatechange = divisionChange;
      xmlHttp.open("GET", url, true);
      xmlHttp.send(null);
      }




      function divisionChange(){   
      if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){   
      document.getElementById("division").innerHTML=xmlHttp.responseText   
      }   
      }



      function showstudid(str){

          var select = document.getElementById("class");
var classvalue = select.options[select.selectedIndex].value;

      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="studid.jsp";
      url +="?passdivision=" +encodeURI(str);
      url +="&passclass=" +encodeURI(classvalue);

      xmlHttp.onreadystatechange = studidchange;
      xmlHttp.open("GET", url, true);
      xmlHttp.send(null);
      }


      function studidchange(){   
      if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){   
      document.getElementById("studid").innerHTML=xmlHttp.responseText   
      }   
      } 



      </script>  
      </head>  
      <body>  
      <table border="1">
      <tr><th>Class</th><th>Division</th><th>studid</th></tr>
      <tr><td>
      <select name='class' onchange="showdivision(this.value)">  
       <option value="none">Select</option>  
    <%
 Class.forName("com.mysql.jdbc.Driver");  
 Connection con = DriverManager.getConnection("jdbc:mysql://localhost/demo","root","password");  
 Statement stmt = con.createStatement();  
 ResultSet rs = stmt.executeQuery("Select class from class1");
 while(rs.next()){
     %>
      <option value="<%=rs.getString(1)%>"><%=rs.getString(1)%></option>  
      <%
 }
     %>
      </select> 
      </td>
      <td id='division'><select name='division' >  
      <option value='-1'></option>  
      </select>
      </td>
       <td id='studid'> <select name='studid' >  
      <option value='-1'></option>  
      </select>   
      </td>
      </tr>
      </table>
      </body> 
      </html>
<%@page import="java.sql.*"%>
<%
String classs=request.getParameter("passclassname");  
 String bu="<select name='division' onchange='showstudid(this.value);'><option value='-1'>Select</option>";  
 try{
 Class.forName("com.mysql.jdbc.Driver");  
 Connection con = DriverManager.getConnection("jdbc:mysql://localhost/demo","root","password");  
 Statement stmt = con.createStatement();  
 ResultSet rs = stmt.executeQuery("Select division_no from class1 where class='"+classs+"' ");  
   while(rs.next()){
   bu=bu+"<option value='"+rs.getString(1)+"'>"+rs.getString(1)+"</option>";  
   }  
 bu=bu+"</select>";  
 response.getWriter().println(bu); 
 }
 catch(Exception e){
     System.out.println(e);
 }

 %>
   <%-- 
    Document   : divisionn
    Created on : Nov 26, 2016, 11:13:27 AM
    Author     : Jithin
--%>


<%@page import="java.sql.*"%>
<%
String division=request.getParameter("passdivision");  

String classs=request.getParameter("passclass");  



 String bu="<select name='division'><option value='-1'>---Select--</option>";  
 try{
 Class.forName("com.mysql.jdbc.Driver");  
 Connection con = DriverManager.getConnection("jdbc:mysql://localhost/demo","root","password");  
 Statement stmt = con.createStatement();  
 ResultSet rs = stmt.executeQuery("Select studid from class1 where division_no='"+ division+"' and class='"+ classs+"' ");  
   while(rs.next()){
   bu=bu+"<option value='"+rs.getString(1)+"'>"+rs.getString(1)+"</option>";  
   }  
 bu=bu+"</select>";  
 response.getWriter().println(bu); 
 }
 catch(Exception e){
     System.out.println(e);
 }

 %>

有人能帮我找到解决办法吗。。先谢谢你

要通过URL传递多个参数,需要使用正确的URL编码

var url="studid.jsp";
url +="?passdivision=" +encodeURI(str);
url +="&passclass=" +encodeURI(xclass);
请注意,其他参数由&分隔,encodeURI函数将URL编码您的数据


也考虑使用准备好的语句,因为SQL查询有明显的SQL注入漏洞。

代码正在工作,但我无法从下拉(类值)中获取所选值。这是在传递类名时发生的。无法获取xclass值。我已经更新了我的代码,请注意,您没有在选择框中将id属性设置为class,您只设置了名称,因此getElementById将返回null。将id='class'添加到select元素中,它应该可以工作。
var url="studid.jsp";
url +="?passdivision=" +encodeURI(str);
url +="&passclass=" +encodeURI(xclass);