<script language="jscript">
// 定义第一个select
var arr1 = new Array(3);
arr1[0]="option 0";
arr1[1]="option 1";
arr1[2]="option 2";
//定义第二个select,为2为数组
var arr2 = new Array(3)
arr2[0]=new Array("sel0","option 1","option 2");
arr2[1]=new Array("sel1","option 1","option 2");
arr2[2]=new Array("sel2","option 1","option 2");
function fnSelect()
{
//得到选择的value值
var objS = event.srcElement.value;
//alert(objS.value);
//清空第二个select
document.testform.s2.innerHTML="";
//循环添加数据项
for (i=0;i<arr2[objS].length;i++)
{
//以下使用的creatElement就是DOM的方法
var oOption = document.createElement("OPTION");
oOption.text=arr2[objS][i];
oOption.value=i;
document.testform.s2.add(oOption);
} //alert(oStr);
//2.innerHTML=oStr;
}
</script>
<body>
<form name="testform">
<select name="s1" onchange="fnSelect();" id="oSelect1">
<script language="jscript">
//下面这句话也可以写成函数形式的 或者就在前面定义成自动添加的
for (i=0;i<3;i++)
{
document.write("<option value="+i+">"+arr1[i]+"</option>")
}
</script>
</select>
<hr>
<select name="s2" id="oSelect2" >
<option></option>
</select>
</form></body>
// 定义第一个select
var arr1 = new Array(3);
arr1[0]="option 0";
arr1[1]="option 1";
arr1[2]="option 2";
//定义第二个select,为2为数组
var arr2 = new Array(3)
arr2[0]=new Array("sel0","option 1","option 2");
arr2[1]=new Array("sel1","option 1","option 2");
arr2[2]=new Array("sel2","option 1","option 2");
function fnSelect()
{
//得到选择的value值
var objS = event.srcElement.value;
//alert(objS.value);
//清空第二个select
document.testform.s2.innerHTML="";
//循环添加数据项
for (i=0;i<arr2[objS].length;i++)
{
//以下使用的creatElement就是DOM的方法
var oOption = document.createElement("OPTION");
oOption.text=arr2[objS][i];
oOption.value=i;
document.testform.s2.add(oOption);
} //alert(oStr);
//2.innerHTML=oStr;
}
</script>
<body>
<form name="testform">
<select name="s1" onchange="fnSelect();" id="oSelect1">
<script language="jscript">
//下面这句话也可以写成函数形式的 或者就在前面定义成自动添加的
for (i=0;i<3;i++)
{
document.write("<option value="+i+">"+arr1[i]+"</option>")
}
</script>
</select>
<hr>
<select name="s2" id="oSelect2" >
<option></option>
</select>
</form></body>
1:一次把数据全部取出,在客户端解析
2:利用window.returnValue打开一个窗口,在新的窗口中执行查询数据库的操作,将值返回
3:利用隐藏的iframe
<html>
<head>
<form name="denyu" METHOD=POST action="denyu1.jsp">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>灯语</title>
</head>
<body>
<%@page contentType="text/html; charset=gb2312"%>
<%String aaaa="dwqdeer";%>
<%@page language="java" import="java.sql.*"%>
<%!
Connection conn1=null;
ResultSet rs=null;
Statement stmt1;%>
<%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn1=DriverManager.getConnection("jdbc:odbc:dddd","","");
stmt1=conn1.createStatement();
%>
<script Language="JavaScript" import="java.sql.*">
Connection conn2=null;
ResultSet rs2=null;
Statement stmt2;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn2=DriverManager.getConnection("jdbc:odbc:dddd","","");
stmt2=conn2.createStatement();
rs2=stmt2.executeQuery("select * from table1");
var my;if(rs2.next()){
my="String(rs2.getString(1))";
}
///我就是没法的到"my"function change(char)
{var i; var ss=char.value;for (i=0;i<9; i++)
{
if (ss ==my)
{
document.denyu.village.options[0]=new Option("fda","");
} }
}
</script> <div align="center"> <p><strong><font size="6">JAVA</font></strong></p>
<hr>
<table width="75%" border="1">
<tr>
<td width="35%">
<%
rs=stmt1.executeQuery("select * from table1");
%>
<%!String aa,aa1;%>
<select name="select1" id="select1" onChange="change(this)">
<%while(rs.next())
{aa=rs.getString(1);
aa1=rs.getString(3);
%>
<option value=<%=aa%>><%=aa%></option>
<% } %>
</select>
<%rs.close();%>
</td><td></select><select name="village" size="1">
<option selected>==税种==</option></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
<p><strong><font size="6"></font></strong></p>
<p> </p>
</div><p><input type="submit" value="确定">
<input type="submit" value="取消">
</p>
<a href="dy.jsp">去</a>
</body>
</html>
上周六我整整熬了一个通宵才解决了这个问题,看来难兄难弟还不少。其实比较好的方式还是使用JS+XML,既可以从数据库读取,而且数据量不会太大,也不用刷新。网上有相关的文档,实在解决不了再给你写段代码。
<IFRAME HEIGHT="50" WIDTH="0" SRC="" NAME="hiddenframe" id="hiddenframe"></IFRAME>
2、第一个下拉菜单触发Onchange事件
function Load(obj1,obj2)
{
var obj = document.form1.obj1;
var dm=eval( obj + ".options[" + eval( obj + ".selectedIndex" ) + "].value");
document.frames["hiddenframe"].location="Load.jsp?DM="+dm;
}
</script>
3、Load.jsp后台操作
清空第二个下拉菜单remove()
jsp数据库操作生成菜单项,将生成的选项添加到第二个下拉菜单
<%
while( rs.next() )
{
%>
<SCRIPT LANGUAGE="JavaScript">
var option;
option= parent.document.createElement("OPTION");
option.value=sValue;
option.text=sValue;
obj.add( option);
</SCRIPT>
<%
}
%>