jsp操作数据库一个下拉框变化另一个下拉框也变化,如何获取第二个下拉框的值

my1608514296 2013-09-01 04:21:03


就是上面这个已经实现了,但第二个下拉框的值获取不了;

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

目的就是获取第二个下拉框的值,希望有兴趣的网友能帮忙解决一下,急用,等着大家啊
...全文
1435 45 打赏 收藏 转发到动态 举报
写回复
用AI写文章
45 条回复
切换为时间正序
请发表友善的回复…
发表回复
my1608514296 2013-09-06
  • 打赏
  • 举报
回复
引用 44 楼 podongxi777442156445 的回复:
[quote=引用 43 楼 my1608514296 的回复:] [quote=引用 42 楼 podongxi777442156445 的回复:] 我可不是大神,那边回答的才是,不过你们好像是用的同一种方式?不能改一种,必须那样写?,没给option赋值value的话,后台是拿不到的
不是必须,而是都不会,用那种方法倒没事,只要做出来就行了,凭我们目前的能力,就只能做到这里了,所以只能上网发帖了,要不你给搞一个,和他的要求类似的,只要功能实现就行了,我也出100分了,只要能搞出来都行![/quote] 你还是去搜一下吧,我电脑里木有数据库,连接后台太麻烦[/quote] 好吧!
暖暖猫 2013-09-06
  • 打赏
  • 举报
回复
引用 43 楼 my1608514296 的回复:
[quote=引用 42 楼 podongxi777442156445 的回复:] 我可不是大神,那边回答的才是,不过你们好像是用的同一种方式?不能改一种,必须那样写?,没给option赋值value的话,后台是拿不到的
不是必须,而是都不会,用那种方法倒没事,只要做出来就行了,凭我们目前的能力,就只能做到这里了,所以只能上网发帖了,要不你给搞一个,和他的要求类似的,只要功能实现就行了,我也出100分了,只要能搞出来都行![/quote] 你还是去搜一下吧,我电脑里木有数据库,连接后台太麻烦
my1608514296 2013-09-05
  • 打赏
  • 举报
回复
引用 37 楼 podongxi777442156445 的回复:
[quote=引用 36 楼 my1608514296 的回复:] [quote=引用 35 楼 podongxi777442156445 的回复:] 你遍历的时候给你的那个option一个值
要不给点代码吧,我感觉还是代码来的比较有感觉,多谢啦![/quote] 现在没时间来的···,你可以去网上找找看,那种纯JS的也可以看,下拉联动,这么搜索[/quote] 好吧,我在网上都搜了好多天了,不是看不懂,就是不会用。。。
暖暖猫 2013-09-05
  • 打赏
  • 举报
回复
引用 36 楼 my1608514296 的回复:
[quote=引用 35 楼 podongxi777442156445 的回复:] 你遍历的时候给你的那个option一个值
要不给点代码吧,我感觉还是代码来的比较有感觉,多谢啦![/quote] 现在没时间来的···,你可以去网上找找看,那种纯JS的也可以看,下拉联动,这么搜索
my1608514296 2013-09-05
  • 打赏
  • 举报
回复
引用 35 楼 podongxi777442156445 的回复:
你遍历的时候给你的那个option一个值
要不给点代码吧,我感觉还是代码来的比较有感觉,多谢啦!
暖暖猫 2013-09-05
  • 打赏
  • 举报
回复
你遍历的时候给你的那个option一个值
my1608514296 2013-09-05
  • 打赏
  • 举报
回复
引用 32 楼 podongxi777442156445 的回复:
[quote=引用 31 楼 my1608514296 的回复:] [quote=引用 30 楼 podongxi777442156445 的回复:] [quote=引用 29 楼 zhou2008zhou_zhou 的回复:] [quote=引用 28 楼 podongxi777442156445 的回复:] [quote=引用 27 楼 my1608514296 的回复:] [quote=引用 26 楼 podongxi777442156445 的回复:] 那你后台是取到值了?
后台好像只是将查询到的值显示到下拉框中啊。[/quote] 那应该是可以遍历到你的option里面啊,你所有数据都读取之后,右键一下,查看源文件,或者是查看页面源代码,然后ctrl+F,搜索一下你的select2,看看是否是有值?[/quote] 没有值啊,不知道是怎么回事。[/quote] 那就是没有弄进去,你后台查询到值了吗?[/quote] 查询到了,点击第一个下拉框,第二个下拉框显示的内容也正确,但不知道怎么获取过来然后进行删除、修改之类的操作。[/quote] 你在遍历的时候,是否给那个select2下的option一个value了?[/quote] 好像是,那如何获取呢?
my1608514296 2013-09-05
  • 打赏
  • 举报
回复
你看一下获取结果集那个代码,这点我不太清楚,
my1608514296 2013-09-05
  • 打赏
  • 举报
回复
引用 42 楼 podongxi777442156445 的回复:
我可不是大神,那边回答的才是,不过你们好像是用的同一种方式?不能改一种,必须那样写?,没给option赋值value的话,后台是拿不到的
不是必须,而是都不会,用那种方法倒没事,只要做出来就行了,凭我们目前的能力,就只能做到这里了,所以只能上网发帖了,要不你给搞一个,和他的要求类似的,只要功能实现就行了,我也出100分了,只要能搞出来都行!
暖暖猫 2013-09-05
  • 打赏
  • 举报
回复
引用 31 楼 my1608514296 的回复:
[quote=引用 30 楼 podongxi777442156445 的回复:] [quote=引用 29 楼 zhou2008zhou_zhou 的回复:] [quote=引用 28 楼 podongxi777442156445 的回复:] [quote=引用 27 楼 my1608514296 的回复:] [quote=引用 26 楼 podongxi777442156445 的回复:] 那你后台是取到值了?
后台好像只是将查询到的值显示到下拉框中啊。[/quote] 那应该是可以遍历到你的option里面啊,你所有数据都读取之后,右键一下,查看源文件,或者是查看页面源代码,然后ctrl+F,搜索一下你的select2,看看是否是有值?[/quote] 没有值啊,不知道是怎么回事。[/quote] 那就是没有弄进去,你后台查询到值了吗?[/quote] 查询到了,点击第一个下拉框,第二个下拉框显示的内容也正确,但不知道怎么获取过来然后进行删除、修改之类的操作。[/quote] 你在遍历的时候,是否给那个select2下的option一个value了?
暖暖猫 2013-09-05
  • 打赏
  • 举报
回复
我可不是大神,那边回答的才是,不过你们好像是用的同一种方式?不能改一种,必须那样写?,没给option赋值value的话,后台是拿不到的
my1608514296 2013-09-05
  • 打赏
  • 举报
回复
引用 39 楼 podongxi777442156445 的回复:
给你个思路吧,代码我这里还真就没有了 你查询到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,也是同样的问题。
踩踩一哥 2013-09-05
  • 打赏
  • 举报
回复
很久没搞js了 不过你确定使用onchange="getLevel2()"?换几个试试 onselected或者。。记不清了,找找看。
暖暖猫 2013-09-05
  • 打赏
  • 举报
回复
给你个思路吧,代码我这里还真就没有了 你查询到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,你自己看着换···,我没测试
      }
  }

}
大概就这个意思吧,如果你在弄不出来,我也没办法了
暖暖猫 2013-09-04
  • 打赏
  • 举报
回复
那你后台是取到值了?
my1608514296 2013-09-04
  • 打赏
  • 举报
回复
引用 23 楼 shiyihou 的回复:
在你看到页面上有值的时候,查看下页面源码 就知道原因了
源码看了,没找到原因啊
my1608514296 2013-09-04
  • 打赏
  • 举报
回复
引用 22 楼 podongxi777442156445 的回复:

  var select2 = document.document.getElementById('select2');
  for ( var i = 0; i < _arr.length - 1; i += 2) {
		select2.push("<option value='"+i+"'>"+i+"</option>");//这里你自己添加你的那些属性吧,应该是这样遍历的
	  }
  }
我加进去了,但和原来好像没什么变化啊、
出家二少 2013-09-04
  • 打赏
  • 举报
回复
在你看到页面上有值的时候,查看下页面源码 就知道原因了
暖暖猫 2013-09-04
  • 打赏
  • 举报
回复

  var select2 = document.document.getElementById('select2');
  for ( var i = 0; i < _arr.length - 1; i += 2) {
		select2.push("<option value='"+i+"'>"+i+"</option>");//这里你自己添加你的那些属性吧,应该是这样遍历的
	  }
  }
my1608514296 2013-09-04
  • 打赏
  • 举报
回复
引用 19 楼 podongxi777442156445 的回复:

 options[options.length] = new Option(_arr, _arr[i + 1]);
这最后一句,我感觉你是新建了一个option吧,好像并没有把东西放到那个select2里
好像是,请问该如何操作呢?
加载更多回复(25)

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧