如何在ajax(JSP)中传递选定的下拉值?
我 在我的web应用程序中,我使用动态下拉菜单选择 班级、部门和学生id。选择班级时,请选择部门 下拉列表根据所选类别填充。。同样地 学生识别下拉列表通过获取班级和分区来填充 我的问题是我不能同时将类值和除法值传递给jsp页面 My Home.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
<%@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);