我先来说一个比较简单实现方法吧。这是我以前做的,是院系和下属科室的联动,与你的情况基本一致辞。适用于少量数据,你先看懂这个静态页面。
<script language="javascript">    
       function changeChildItem()
   {
  document.all.ksh.length=0;
   var selectContent = document.createElement("option");
       selectContent.text = '请选择';
       selectContent.value = '';
       document.all.ksh.add(selectContent);
  var SelectValue=document.forms[0].yxsh.value;
  
        var sub ='XXXY';
        if (sub == SelectValue)
        {
    var content = document.createElement("option");
    content.text = '基础软件教研室';
    content.value = '1';
    document.all.ksh.add(content);
        }
  
        var sub ='JXXY';
        if (sub == SelectValue)
        {
    var content = document.createElement("option");
    content.text = '机械学院办公室';
    content.value = '2';
    document.all.ksh.add(content);
        }
}
</script>
<form>
<select name="yxsh"  id="yxsh"  onchange="changeChildItem();" >
<option value="">请选择</option><option value="XXXY">信息学院</option>
<option value="JXXY">机械学院</option>
</select>
<br>
<select name="ksh" id="ksh">
<option value="">请选择</option>
</select>
</form>
也就是说如果这个静态页面中的JS部分的数据是用数据库里查出来的就可以实现了。
下面来说JSP的实现。以上面的信息为例
用SQL查出如下信息。用科室信息表中查出如下信息
所属院系编号,科室名称,科室编号。放到一个ArrayList里。
然后在页上输出JS的地方写上这样的程序;
 <%ArrayList allZyList = (ArrayList) request.getAttribute("ksxx");%>
<script language="javascript">
      
       function changeChildItem()
   {
  document.all.ksh.length=0;
   var selectContent = document.createElement("option");
       selectContent.text = '请选择';
       selectContent.value = '';
       document.all.ksh.add(selectContent);
  var SelectValue=document.forms[0].yxsh.value;
  <%for(int i=0;i<allZyList.size();i++)
    {
     String ksToYs[]=(String[])allZyList.get(i);
  %>
        var sub ='<%=ksToYs[0]%>';
        if (sub == SelectValue)
        {
    var content = document.createElement("option");
    content.text = '<%=ksToYs[2]%>';
    content.value = '<%=ksToYs[1]%>';
    document.all.ksh.add(content);
        }
  <%}%>
 }
</script>
就可以了

解决方案 »

  1.   

    谢谢,, goodhal0418(远远读你) ,看了,收下了......
    请问一下,那第二段的然后在页上输出JS的地方写上这样的程序;
     <%ArrayList allZyList = (ArrayList) request.getAttribute("ksxx");%>
    <script language="javascript">
          
           function changeChildItem()
    中的 function是不是就是将数据从数据库中加入到第二个select中去啊..
    我还是不怎么看得懂,你能不能给我一个实例,让我去试试.
      

  2.   

    你把第一部分代码拷出去存成 html文件再打开就可以看到效果了。:)。