就是上面这个已经实现了,但第二个下拉框的值获取不了;前台jsp主要代码贴上:那段javascript没贴上;change8.jsp<div id="form">
<form name="great" action="change9.jsp" method="post">
<h2 class="tit2" style="color:#FFFFFF">线路站点删除</h2>
<br/>
<h3 style="color:#FFFFFF">选择线路:
<select name="select1" id="select1" onchange="getLevel2()">
<option value="0">--请选择--</option>
<%
while (rs.next())
{
%>
<option value="<%=rs.getString(1)%>"><%=rs.getString(1)%></option>
<%
}
rs.close();
statement.close();
conn.close();
%>
</select> <br/>
<h3 style="color:#FFFFFF; margin:50px">选择要删除的站点:
<select name="select2" id="select2">
<option value="0">--请选择--</option>
</select>
</div>
</html>
实现连个下拉框变化的代码:do1.jsp:<%@page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ page import="java.sql.*,java.io.*"%>
<%
String route=new String(request.getParameter("route").trim().getBytes("ISO8859_1"),"gb2312"); System.out.println(route);
String userName = "sa";
String userPasswd = "111111";
//需要连接的数据库名
String dbName = "IntelligentBus";
//表名
String tableName = "Stop_RouteInfor";
String url = "jdbc:sqlserver://localhost:1433;databaseName=IntelligentBus";
//创建连接并执行查询操作
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
.newInstance();
Connection conn = DriverManager.getConnection(url, userName,
userPasswd);
Statement statement = conn.createStatement();
String sql = "SELECT stop FROM " + tableName
+ " where route='" + route+"'";
System.out.println("sql:"+sql);
ResultSet rs = statement.executeQuery(sql); //获取数据结果集
response.setContentType("text/html; charset=UTF-8");
response.setHeader("Cache-Control", "no-cache");
PrintWriter pout = null;
pout = response.getWriter();
pout.print("[");
while (rs.next()) {
try { pout.print("'" + (rs.getString("stop")) + "',");
pout.print(",");
} catch (Exception e) {
e.printStackTrace();
}
}
pout.print("0]");
rs.close();
statement.close();
conn.close();
%>把操作这连个下拉框的代码页贴上一点;change9.jsp<%@page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@page import="java.sql.*"%>
<%@include file="connection.jsp"%><html> <head>
</head> <body>
<%
ResultSet rs1;
String sqlstr;
String select1=new String(request.getParameter("select1").trim().getBytes("ISO8859_1"),"gb2312");//这个可以获取
String select2=new String(request.getParameter("select2").trim().getBytes("ISO8859_1"),"gb2312");//这个获取不了,主要就是获取它的
System.out.println(select1+select2);//下面就是操作数据库的,没贴上来
</body>
</html>目的就是获取第二个下拉框的值,希望有兴趣的网友能帮忙解决一下,急用,等着大家啊jsp数据库javascript
<form name="great" action="change9.jsp" method="post">
<h2 class="tit2" style="color:#FFFFFF">线路站点删除</h2>
<br/>
<h3 style="color:#FFFFFF">选择线路:
<select name="select1" id="select1" onchange="getLevel2()">
<option value="0">--请选择--</option>
<%
while (rs.next())
{
%>
<option value="<%=rs.getString(1)%>"><%=rs.getString(1)%></option>
<%
}
rs.close();
statement.close();
conn.close();
%>
</select> <br/>
<h3 style="color:#FFFFFF; margin:50px">选择要删除的站点:
<select name="select2" id="select2">
<option value="0">--请选择--</option>
</select>
</div>
</html>
实现连个下拉框变化的代码:do1.jsp:<%@page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ page import="java.sql.*,java.io.*"%>
<%
String route=new String(request.getParameter("route").trim().getBytes("ISO8859_1"),"gb2312"); System.out.println(route);
String userName = "sa";
String userPasswd = "111111";
//需要连接的数据库名
String dbName = "IntelligentBus";
//表名
String tableName = "Stop_RouteInfor";
String url = "jdbc:sqlserver://localhost:1433;databaseName=IntelligentBus";
//创建连接并执行查询操作
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
.newInstance();
Connection conn = DriverManager.getConnection(url, userName,
userPasswd);
Statement statement = conn.createStatement();
String sql = "SELECT stop FROM " + tableName
+ " where route='" + route+"'";
System.out.println("sql:"+sql);
ResultSet rs = statement.executeQuery(sql); //获取数据结果集
response.setContentType("text/html; charset=UTF-8");
response.setHeader("Cache-Control", "no-cache");
PrintWriter pout = null;
pout = response.getWriter();
pout.print("[");
while (rs.next()) {
try { pout.print("'" + (rs.getString("stop")) + "',");
pout.print(",");
} catch (Exception e) {
e.printStackTrace();
}
}
pout.print("0]");
rs.close();
statement.close();
conn.close();
%>把操作这连个下拉框的代码页贴上一点;change9.jsp<%@page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@page import="java.sql.*"%>
<%@include file="connection.jsp"%><html> <head>
</head> <body>
<%
ResultSet rs1;
String sqlstr;
String select1=new String(request.getParameter("select1").trim().getBytes("ISO8859_1"),"gb2312");//这个可以获取
String select2=new String(request.getParameter("select2").trim().getBytes("ISO8859_1"),"gb2312");//这个获取不了,主要就是获取它的
System.out.println(select1+select2);//下面就是操作数据库的,没贴上来
</body>
</html>目的就是获取第二个下拉框的值,希望有兴趣的网友能帮忙解决一下,急用,等着大家啊jsp数据库javascript
解决方案 »
- struts+jquery.vaidate验证用户是否存在没反应
- javascript刷新select组件
- 请各位网友解释javascript语句的作用(标号为1.2.3.4)
- 新手提问,关于There is no Action mapped for action name
- 关于soap的一些问题
- 本人计划启动一个开源软件项目,找合作开发的朋友共同开发~~~~~~~
- java,用户关闭浏览器,如何记录用户的退出时间?望大神给个方案。
- JSP标记库如何使用,如何能让页面设计员无需关心Java语法,请举例。
- 在sql语句中使用distinct出错?
- 关于springboot项目使用winsw日志的问题
- javaweb定时器读取图片并轮播
- 在JSP页面循环获取Float字段的数据, 怎样去除整数末尾的.0呢?
只要能在change9.jsp中获取就行,能不能说具体点。
看完你的代码了,但是看你的描述,我有点不明白
1.你的第二个下拉框,联动时候里面会显示值的?
2.你的getLevel2()这里是怎么存放第二个下拉框的值
看完你的代码了,但是看你的描述,我有点不明白
1.你的第二个下拉框,联动时候里面会显示值的?
2.你的getLevel2()这里是怎么存放第二个下拉框的值
第二个下拉框可以显示值,是通过do1.jsp中的显示的;
哦,那段javascript忘记贴上了,是这样的:<script language="JavaScript" type="text/javascript">
<!--
var cache = [];
function getLevel2() {
if (document.forms.great.select1.selectedIndex == 0) {
//当一级菜单未被选中时,二级菜单保持初始状态
document.forms.great.select2.length = 1;
return;
}
//如果当前二级分类没有缓存时,则从服务器获取数据 if (!cache[document.forms.great.select1.selectedIndex]) { //创建跨浏览器的XMLHttpRequest对象
var xmlhttp;
try {
//IE 5.0
xmlhttp = new ActiveXObject('Msxm12.XMLHTTP');
} catch (e) {
try{
//IE 5.5 及更高版本 xmlhttp = new ActiveXObject('Microsoft.XMLHTTP'); } catch (e) {
try {
//其他浏览器
xmlhttp = new XMLHttpRequest();
} catch (e) {}
}
}
xmlhttp.open("get", "do1.jsp?route="
+ document.forms.great.select1.value);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
cache[document.forms.great.select1.selectedIndex] = eval("("
+ xmlhttp.responseText + ")");
getLevel2();
}
}
}; xmlhttp.send(null);
return;
}
document.forms.great.select2.length = 1; var _arr = cache[document.forms.great.select1.selectedIndex]; for ( var i = 0; i < _arr.length - 1; i += 2) { with (document.forms.great.select2) { options[options.length] = new Option(_arr, _arr[i + 1]);
}
}
}
//-->
</script>
请看!
options[options.length] = new Option(_arr, _arr[i + 1]);这最后一句,我感觉你是新建了一个option吧,好像并没有把东西放到那个select2里
var select2 = document.document.getElementById('select2');
for ( var i = 0; i < _arr.length - 1; i += 2) {
select2.push("<option value='"+i+"'>"+i+"</option>");//这里你自己添加你的那些属性吧,应该是这样遍历的
}
}
那应该是可以遍历到你的option里面啊,你所有数据都读取之后,右键一下,查看源文件,或者是查看页面源代码,然后ctrl+F,搜索一下你的select2,看看是否是有值?
那应该是可以遍历到你的option里面啊,你所有数据都读取之后,右键一下,查看源文件,或者是查看页面源代码,然后ctrl+F,搜索一下你的select2,看看是否是有值?
没有值啊,不知道是怎么回事。
那应该是可以遍历到你的option里面啊,你所有数据都读取之后,右键一下,查看源文件,或者是查看页面源代码,然后ctrl+F,搜索一下你的select2,看看是否是有值?
没有值啊,不知道是怎么回事。
那就是没有弄进去,你后台查询到值了吗?
那应该是可以遍历到你的option里面啊,你所有数据都读取之后,右键一下,查看源文件,或者是查看页面源代码,然后ctrl+F,搜索一下你的select2,看看是否是有值?
没有值啊,不知道是怎么回事。
那就是没有弄进去,你后台查询到值了吗?查询到了,点击第一个下拉框,第二个下拉框显示的内容也正确,但不知道怎么获取过来然后进行删除、修改之类的操作。
那应该是可以遍历到你的option里面啊,你所有数据都读取之后,右键一下,查看源文件,或者是查看页面源代码,然后ctrl+F,搜索一下你的select2,看看是否是有值?
没有值啊,不知道是怎么回事。
那就是没有弄进去,你后台查询到值了吗?查询到了,点击第一个下拉框,第二个下拉框显示的内容也正确,但不知道怎么获取过来然后进行删除、修改之类的操作。你在遍历的时候,是否给那个select2下的option一个value了?
那应该是可以遍历到你的option里面啊,你所有数据都读取之后,右键一下,查看源文件,或者是查看页面源代码,然后ctrl+F,搜索一下你的select2,看看是否是有值?
没有值啊,不知道是怎么回事。
那就是没有弄进去,你后台查询到值了吗?查询到了,点击第一个下拉框,第二个下拉框显示的内容也正确,但不知道怎么获取过来然后进行删除、修改之类的操作。你在遍历的时候,是否给那个select2下的option一个value了?好像是,那如何获取呢?
你查询到select1的时候,遍历到第一个option里,你也是这么用的
而拿到第二个的时候function getLevel2() {
var select2 = document.getElementById('select2');
/**不知道你怎么去后台取值的,我就随便定义一个吧**/
var results;
for ( var i = 0; i < results.length; i++) {
select2.options.add(new Option(results[0].value,results[0].name));//这里的value,和name,你自己看着换···,我没测试
}
}}大概就这个意思吧,如果你在弄不出来,我也没办法了
还是没弄出来,算了吧,再找人问,大神,看这个,我同学的,http://bbs.csdn.net/topics/390581309,也是同样的问题。