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

解决方案 »

  1.   

    有几个方法可以实现:
    1:一次把数据全部取出,在客户端解析
    2:利用window.returnValue打开一个窗口,在新的窗口中执行查询数据库的操作,将值返回
    3:利用隐藏的iframe
      

  2.   

    我的第二个下拉菜单中的内容想根据第一个下拉菜单的选项的不同,从数据库中提取不同的数据,我该怎么作,我已经用呢很多的办法,都不能实现,望解答!!!!!!,我现在的最大问题是我从”数据库“中提出的rs,怎么加入到<script language="JavaScript">中的函数onchange()中去,下面是我的代码
    <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>&nbsp;</td>
        </tr>
    <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
         <td>&nbsp;</td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
      </table>
      <p><strong><font size="6"></font></strong></p>
      <p>&nbsp; </p>
    </div><p><input type="submit" value="确定">
    <input type="submit" value="取消">
    </p>
    <a href="dy.jsp">去</a>
    </body>
    </html>
      

  3.   


    上周六我整整熬了一个通宵才解决了这个问题,看来难兄难弟还不少。其实比较好的方式还是使用JS+XML,既可以从数据库读取,而且数据量不会太大,也不用刷新。网上有相关的文档,实在解决不了再给你写段代码。
      

  4.   

    1、定义IFRAME
     <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>
    <%
    }
    %>