可以考虑“另一个下拉列表框”用iframe来实现

解决方案 »

  1.   

    <form name="doublecombo"><select name="example" size="1" onChange="redirect(this.options.selectedIndex)">
    <option>应用技术开发网站</option>
    <option>国内JavaScript技术网站</option>
    <option>国外的著名搜索引擎</option>
    </select>
    <select name="stage2" size="1">  
    <option value="http://www.80cn.com">世纪鸟作坊</option> 
    </select> 
    <input type="button" name="test" value="Go!"  
    onClick="go()">  
    </p>  
    <script>  
    <!--  
    var groups=document.doublecombo.example.options.length  
      var group=new Array(groups)  
      for (i=0; i<groups; i++)  
      group[i]=new Array()  
    group[0][0]=new Option("世纪鸟作坊","http://www.80cn.com")  
       
       
    group[1][0]=new Option("万旭JavaScript仓库","http://www.wanxu.com")  
      group[1][1]=new Option("JavaScript2000","http://www.javascript2000.com")  
      group[1][2]=new Option("无忧脚本","http://www.51js.com")  
       
    group[2][0]=new Option("Hotbot","http://www.hotbot.com")  
      group[2][1]=new Option("Infoseek","http://www.infoseek.com")  
      group[2][2]=new Option("Excite","http://www.excite.com")  
      group[2][3]=new Option("Lycos","http://www.lycos.com")  
    var temp=document.doublecombo.stage2  
    function redirect(x){  
      for (m=temp.options.length-1;m>0;m--)  
      temp.options[m]=null  
      for (i=0;i<group[x].length;i++){  
      temp.options[i]=new Option(group[x][i].text,group[x][i].value)  
      }  
      temp.options[0].selected=true  
      }  
    function go(){  
      location=temp.options[temp.selectedIndex].value  
      }  
      //-->  
      </script>  
      </form>
    把相应内容换成 jsp 从数据库读出的内容就行了.
     ------------------------------------------------------
               我们还年轻牛奶会有的奶牛也会有的 
                 可天天在 csdn 混这些会有吗 ??
      

  2.   

    <SCRIPT language=JavaScript>
    SubMenuinfo = new Array(
        new Array(
                  new Array("工人", "工人"),
                  new Array("企事业负责人", "企事业负责人"),
                  new Array("职员", "职员"),
                  new Array("科技人员", "科技人员"),
                  new Array("律师", "律师"),
                  new Array("公务员", "公务员"),
                  new Array("农民", "农民"),
                  new Array("军人", "军人"),
                  new Array("医生", "医生"),
                  new Array("教师", "教师"),
      new Array("商业人员", "商业人员"),
      new Array("服务人员", "服务人员"),
      new Array("文体人员", "文体人员"),
      new Array("个体劳动者", "个体劳动者"),
      new Array("无业人员", "无业人员"),
      new Array("其他人员", "其他人员"),
                  new Array("学生", "学生")
                 ),
        new Array(
                  new Array("社团", "社团"),
                  new Array("部委", "部委"),
                  new Array("教育", "教育"),
                  new Array("科研", "科研"),
                  new Array("驻华机构", "驻华机构"),
                  new Array("国内公司", "国内公司"),
                  new Array("三资企业", "三资企业"),
                  new Array("信息服务", "信息服务"),
      new Array("新闻机构", "新闻机构"),
      new Array("外国商社", "外国商社"),
      new Array("金融", "金融"),
      new Array("政府机关", "政府机关"),
      new Array("军事", "军事"),
                  new Array("其他", "其他")
                 ),
        new Array(
                  new Array("工人", "工人"),
                  new Array("企事业负责人", "企事业负责人"),
                  new Array("职员", "职员"),
                  new Array("科技人员", "科技人员"),
                  new Array("律师", "律师"),
                  new Array("公务员", "公务员"),
                  new Array("农民", "农民"),
                  new Array("军人", "军人"),
                  new Array("医生", "医生"),
                  new Array("教师", "教师"),
      new Array("商业人员", "商业人员"),
      new Array("服务人员", "服务人员"),
      new Array("文体人员", "文体人员"),
      new Array("个体劳动者", "个体劳动者"),
      new Array("无业人员", "无业人员"),
      new Array("其他人员","其他人员"),
                  new Array("学生", "学生")
                 ),
                //主分类3没有子分类,用null;
         new Array(
                  new Array("工人", "工人"),
                  new Array("企事业负责人", "企事业负责人"),
                  new Array("职员", "职员"),
                  new Array("科技人员", "科技人员"),
                  new Array("律师", "律师"),
                  new Array("公务员", "公务员"),
                  new Array("农民","农民"),
                  new Array("军人", "军人"),
                  new Array("医生", "医生"),
                  new Array("教师", "教师"),
      new Array("商业人员", "商业人员"),
      new Array("服务人员", "服务人员"),
      new Array("文体人员", "文体人员"),
      new Array("个体劳动者", "个体劳动者"),
      new Array("无业人员", "无业人员"),
      new Array("其他人员", "其他人员"),
                  new Array("学生", "学生")
                 ),
     new Array(
                  new Array("社团", "社团"),
                  new Array("部委", "部委"),
                  new Array("教育", "教育"),
                  new Array("科研", "科研"),
                  new Array("驻华机构", "驻华机构"),
                  new Array("国内公司", "国内公司"),
                  new Array("三资企业", "三资企业"),
                  new Array("信息服务", "信息服务"),
      new Array("新闻机构", "新闻机构"),
      new Array("外国商社", "外国商社"),
      new Array("金融", "金融"),
      new Array("政府机关", "政府机关"),
      new Array("军事","军事"),
                  new Array("其他", "其他")
                 )
      ); 
    function fillSelectFromArray(selectCtrl, itemArray, goodPrompt, badPrompt, defaultItem) {
    var i, j;
    var prompt;
    for (i = selectCtrl.options.length; i >= 0; i--) {
       selectCtrl.options[i] = null;
      }
    prompt = (itemArray != null) ? goodPrompt : badPrompt;
    if (prompt == null) {
       j = 0;
      }
    else {
       selectCtrl.options[0] = new Option(prompt);
       j = 1;
      }
    if (itemArray != null) {
       for (i = 0; i < itemArray.length; i++) {
         selectCtrl.options[j] = new Option(itemArray[i][0]);
         if (itemArray[i][1] != null) {
            selectCtrl.options[j].value = itemArray[i][1];
           }
         j++;
         }
        selectCtrl.options[0].selected = true;
       }
    }
    </SCRIPT>
      

  3.   

    这应该是用Javascript实现的吧,与JSP有什么关系?例子:http://www.bxemail.com/AddressBook/export.php代码:<script language="JavaScript">
    var onecount;
    onecount=0;
    subcat = new Array();subcat[0] = new Array("0","请选择","0");
    subcat[1] = new Array("Foxmail","TXT文件(.txt)","txt");
    subcat[2] = new Array("Foxmail","CSV文件(.csv)","csv");
    subcat[3] = new Array("Foxmail","WAB文件(.wab)","wab");
    subcat[4] = new Array("Outlook","TXT文件(.txt)","txt");
    subcat[5] = new Array("Outlook","CSV文件(.csv)","csv");
    subcat[6] = new Array("Outlook","WAB文件(.wab)","wab");
    subcat[7] = new Array("Outlook","名  片(.vcf)","vcf");
    onecount=8;function changelocation(locationid){
    document.exportform.exporttype.length=0;
    var locationid=locationid;
    var i;
    for (i=0;i < onecount; i++){
    if (subcat[i][0] == locationid){
    document.exportform.exporttype.options[document.exportform.exporttype.length] = new Option(subcat[i][1], subcat[i][2]);
    }
    }
    }
    function asubmit(){
    if (document.exportform.software.value=="0") {
    alert("请选择要导出通讯录保存Foxmail或Outlook格式!");
    document.exportform.software.focus();
    return false; 
    }
    if (document.exportform.exporttype.value=="") {
    alert("请选择要通讯录的保存文件格式!");
    document.exportform.exporttype.focus();
    return false; 
    }
    return true;
    }
    </script>
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <form name="exportform" method="post" onSubmit="return asubmit();">
      <tr>
        <td>导出通讯录:
    <select name="software" onChange="changelocation(document.exportform.software.options[document.exportform.software.selectedIndex].value)" size="1">
                      <option value=0>请选择</option>
                      <option value="Foxmail">Foxmail</option>
                      <option value="Outlook">Outlook</option>
    </select>
    <select name="exporttype">
    <option>请选择</option>
    </select>
             
    <input type="submit" name="Submit" value="开始"> </td>
      </tr>
    </form>
    </table>
      

  4.   

    有个方法就是先把所有数据取出来,例如a对应a1,12,a3,a4,让下拉框1中a的值为a1&a2&a3&a4,然后用javascript根据&符号进行拆分,在下拉框2中显示,这样就不用刷新屏幕,看起来舒服些,也不用等待,我就是这么做的,希望对你有帮助
      

  5.   

    <HTML>
    <HEAD>
    <TITLE></TITLE>
    </HEAD>
    <script>
    var student = new Array();
    student[0] = new Array("张三","李四");
    student[1] = new Array("王二","麻子","Neo");
    function change() {
      select2.length = student[select1.selectedIndex].length;
      for(var i=0;i<select2.length;i++)
        select2.options[i].text = student[select1.selectedIndex][i];
    }
    </script>
    <BODY onload="change()">
    <SELECT id=select1 name=select1 onchange="change()">
    <OPTION>1年级1班</OPTION>
    <OPTION>1年级2班</OPTION>
    </SELECT>
    <SELECT id=select2 name=select2><OPTION></OPTION></SELECT>
    </BODY>
    </HTML>
      

  6.   

    flowerworm(芳芳):
    楼上几个提出的脚本都属于经典的关联菜单。
    你要做的是从数据库中取出相应的表项值,去组合该脚本。
    例如从数据库中查出1年级所有的学生名称,将这些名称用out.println()方法打印在页面上。
      

  7.   

    给你个例子,下面的写成tag了,当然你也可以直接在页面上写。
    /**
     * <p>Title: 打印脚本</p>
     * <p>Description: </p>
     * <p>Copyright: Copyright (c) 2003</p>
     * <p>Company: </p>
     * @author YuanQi
     * @version 1.0
     */
    public class WriteScript extends TagSupport
    {
    private String menuStr = "";
    private String areaId = "";

    private void setMenuStr(String aValue)
    {
    menuStr = aValue;
    }
    private String getMenuStr()
    {
    return menuStr;
    }

    public void setAreaId(String aValue)
    {
    areaId = aValue;
    }
    public String getAreaId()
    {
    return areaId;
    }

    public int doStartTag()
    {
    try
    {
    JspWriter out = pageContext.getOut();
    this.getAssociateMenu();
    out.println(this.getMenuStr());
    }
    catch(IOException e)
    {
    e.printStackTrace();
    }
    catch(Exception ex)
    {}
    return (SKIP_BODY);
    }

    public void getAssociateMenu() throws Exception
    {
    try
    {
    StringBuffer sb = new StringBuffer();
    AcceptAreaDAO qeryDao = new AcceptAreaDAO();
    Collection countyList = new ArrayList();
    countyList = qeryDao.queryCounty(this.getAreaId());
    if(countyList!=null&&countyList.size()>0)
    {
    int i=0;
    sb.append("<script language='JavaScript'>\n<!--\n");
    sb.append("selector = [ \"countyCode\", \"citiesCode\", \"acceptArea\" ];\n");
    sb.append("menu = [\n");
    sb.append("\"所有县\",\"-1\",\n[\n");
    sb.append("\"所有营销中心\",\"-1\",\n[\n\"所有营业点\",\"-1\",null\n]\n],\n");
    Iterator ir = countyList.iterator();
    while(ir.hasNext())
    {
    Collection acceptCenterList = new ArrayList();
    AcceptAreaValueBean tmpValue = (AcceptAreaValueBean)ir.next();
    sb.append("\""+tmpValue.getCountyDesc()+"\",\""+tmpValue.getCountyKey()+"\",\n[\n");
    sb.append("\"所有营销中心\",\"-1\",\n[\n\"所有营业点\",\"-1\",null\n],\n");

    acceptCenterList = qeryDao.queryAcceptCenter(tmpValue.getCountyKey(),this.getAreaId());
    if(acceptCenterList!=null&&acceptCenterList.size()>0)
    {
    int k = 0;
    Iterator it = acceptCenterList.iterator();
    while(it.hasNext())
    {
    Collection acceptAreaList = new ArrayList();
    AcceptAreaValueBean tmpValue2 = (AcceptAreaValueBean)it.next();
    sb.append("\""+tmpValue2.getAcceptCenterDesc()+"\",\""+tmpValue2.getAcceptCenterKey()+"\",\n[\n");
            sb.append("\"所有营业点\",\"-1\",null,\n");
            
            acceptAreaList = qeryDao.queryAcceptArea(tmpValue2.getAcceptCenterKey());
            if(acceptAreaList!=null&&acceptAreaList.size()>0)
            {
             int j=0;
             Iterator ia = acceptAreaList.iterator();
             while(ia.hasNext())
             {
             AcceptAreaValueBean tmpValue3 = (AcceptAreaValueBean)ia.next();
             if(j==acceptAreaList.size()-1)
             sb.append("\""+tmpValue3.getAcceptAreaDesc()+"\",\""+tmpValue3.getAcceptAreaKey()+"\",null\n");
             else
             sb.append("\""+tmpValue3.getAcceptAreaDesc()+"\",\""+tmpValue3.getAcceptAreaKey()+"\",null,\n");
             j++;
             }
            }
            
            if(k==acceptCenterList.size()-1)
            sb.append("]\n");
            else
            sb.append("],\n");
            k++;
    }
    }

    if(i==countyList.size()-1)
    sb.append("]\n");
    else
    sb.append("],\n");
    i++;
    }
    sb.append("];\n\n");
    sb.append("function wizz(level)\n");
    sb.append("{\nif( level == 0 )\n");
    sb.append("a = menu;\nelse\n{\n");
    sb.append("str = \"menu\";\nfor( i=0; i<level; i++ )\n");
    sb.append("str += \"[\" + (document.all[selector[i]].selectedIndex * 3 + 2)  + \"]\";\n");
    sb.append("a = eval(str);\n}\n");
    sb.append("if( a == null ) return;\n");
    sb.append("s = document.all[selector[level]];\n");
    sb.append("i = s.length;\n");
    sb.append("while( i > 0 ) s.options[--i] = null;\n");
    sb.append("while( i < Math.floor(a.length/3) )\n");
    sb.append("s.options[i] = Option( a[i*3], a[i++*3+1] );\n");
    sb.append("s.onchange = Function(\"wizz(\" + (level+1) + \")\");\n");
    sb.append("wizz(level+1);\n}\nwizz(0);\n");
    sb.append("//-->\n</script>\n");
    }
    this.setMenuStr(sb.toString());
    //System.out.println(this.getMenuStr());
        }
        catch(Exception e)
        {
         e.printStackTrace();
        }
    }
    }
      

  8.   

    <select name="test" onChange="mm()">
    <%
    out.println("<option value='"+ 学生1 + "&" 学生2 + "&" + 学生3 +"'>班级</option>")
    %>
    </select>
    中间有多少个你取数据库的时候用循环取得就是了下面是javascript:
    function mm(){
    var temp= document.formname.test.value;

    /*拆分字符串*/
    temp = temp.split("&");
             后面的script就用柳随风老大的那个javascript改改就行了,这次的数组是一维数组哦,temp[0]开始。