我用JSP做的一个手机库存系统,其中在入库时,其中有俩个下拉菜单,一个是手机类型(如摩托罗拉,三星)一个是手机型号(如L6,V360,x208),俩个下拉菜单的内容都从数据库中查询,如手机类型是rs.getstring(leixing),手机型号是用的rs.getstring(xinghao),现在遇到个问题就是如何在选择第一个下拉菜单时,如选择摩托罗拉则第二个自动只显示摩托罗拉的手机型号(如L6,v360),如选择三星则第二个下拉菜单只显示三星的手机型号,哪位高手能给指点指点该如何实现,或者是有更好的办法吗?

解决方案 »

  1.   

    <script language = "JavaScript">
    var onecount2;
    onecount2=0;
    subcat2 = new Array();
    <%
    int m=0;
    Datastore smallclass=(Datastore)request.getAttribute("dssmall");
    for(int i=1;i<=smallclass.rowCount();i++){ String smallclassid=General.convertNullToHTMLEmpty(smallclass.getItemString(i,"str_smallclassid"));
    String bigcalssid=General.convertNullToHTMLEmpty(smallclass.getItemString(i,"str_bigclassid"));
    String smallclassname=General.convertNullToHTMLEmpty(smallclass.getItemString(i,"smallclassname"));
    %>
                                                     //型号名字,类型id,型号id
    subcat2[<%=m%>] = new Array("<%=smallclassname%>","<%=bigcalssid%>","<%=smallclassid%>");//产生数组
    <%
    m++;
    }%>
    onecount2=<%=m%>;
    function changelocation(id1,form1)
        {
        form1.smallclassid.length = 0;
        var id1=id1;
        var j;
        form1.smallclassid.options[0] = new Option('请选择小类','');
        for (j=0;j < onecount2; j++)
            {
                if (subcat2[j][1] == id1)
                {
                    form1.smallclassid.options[form1.smallclassid.length] = new Option(subcat2[j][0], subcat2[j][2]);
                }
            }    }
    </script>
      

  2.   

    这个是只有JAVASCRIPT的你再加上下拉菜单给我写一下好吗?
      

  3.   

    <html><head>
    <LINK href=Site.css rel=stylesheet>
    <title>- 添加文章</title>
    </head>
    <body topmargin="0">
    <jsp:include page="../../top.jsp" />
    <table border="1" width="100%" align=center cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="">
    <form name=form1 method="get" action="addarticle.goto.add.do">
    <tr align="center">
    <td colspan="1" class="TDtop" height=25>
    <div align="center" >┊ <B>添加文章--类别选择</B> ┊</div>
    </td>
    </tr>
    <input type="hidden" name="typeid" value="<bonc:param name='typeid'/>">
    <tr bgcolor="#FFFFFF">
    <td align="center">
    <p> </p>
    <p>所属大类:
    <select name="bigclassid" onChange="changelocation(this.value,this.form)" size="1">
    <option selected value="">请选择大类</option>
    <bonc:options name="bigclassOption"/>
    </select>
    所属小类:
    <select name="smallclassid" size="1">
    <option selected value="">请选择小类</option></select>
    </p>
    <p> </p>
    </td>
    </tr>
    <tr>
    <td align="center" height=25 class="TDtop">
    <input type="button" value=" 返 回 " name="B1" onclick=javascript:history.go(-1) style="font-size: 9pt;  color: #000000; background-color: #EAEAF4; solid #EAEAF4" onMouseOver ="this.style.backgroundColor='#ffffff'" onMouseOut ="this.style.backgroundColor='#EAEAF4'">
    <input type="submit" value=" 继 续 " name="B1" style="font-size: 9pt;  color: #000000; background-color: #EAEAF4; solid #EAEAF4" onMouseOver ="this.style.backgroundColor='#ffffff'" onMouseOut ="this.style.backgroundColor='#EAEAF4'">
    </td>
    </tr>
    </form>
    </table>
    <jsp:include page="../../bottom.jsp"/>
    </body>
    </html>
    <script language = "JavaScript">
    var onecount2;
    onecount2=0;
    subcat2 = new Array();
    <%
    int m=0;
    Datastore smallclass=(Datastore)request.getAttribute("dssmall");
    for(int i=1;i<=smallclass.rowCount();i++){ String smallclassid=General.convertNullToHTMLEmpty(smallclass.getItemString(i,"str_smallclassid"));
    String bigcalssid=General.convertNullToHTMLEmpty(smallclass.getItemString(i,"str_bigclassid"));
    String smallclassname=General.convertNullToHTMLEmpty(smallclass.getItemString(i,"smallclassname"));
    %> subcat2[<%=m%>] = new Array("<%=smallclassname%>","<%=bigcalssid%>","<%=smallclassid%>");//产生数组
    <%
    m++;
    }%>
    onecount2=<%=m%>;
    function changelocation(id1,form1)
        {
        form1.smallclassid.length = 0;
        var id1=id1;
        var j;
        form1.smallclassid.options[0] = new Option('请选择小类','');
        for (j=0;j < onecount2; j++)
            {
                if (subcat2[j][1] == id1)
                {
                    form1.smallclassid.options[form1.smallclassid.length] = new Option(subcat2[j][0], subcat2[j][2]);
                }
            }    }
    </script>
    你没看见里面的<%%>????
      

  4.   

    n级联动呗,我是用js+jstl+数据库做得,没有一行java代码
      

  5.   

    ajax那套东西到能做 不过还要先学
    就用javascript 每次一拉动 都触发一个事件
    然后提交数据库 返回填充二级菜单啊 就这么简单
    自己很轻松就能写出来
      

  6.   

    看不懂
    假如俩个下拉菜单的内容(value)分别是rs.getstring(1)和rs.getstring(2)应该怎么改呢?
    我javascript一点也不懂
      

  7.   

    http://community.csdn.net/Expert/topic/5512/5512164.xml?temp=.3683435
    你的问题和这个问题差不多!都要做一个action!
      

  8.   

    学习下,不知道怎么做,呵呵
    好像这个用Ajax比较方便些吧,
    瞅瞅.
      

  9.   

    可以参考一下我的方法
    http://blog.csdn.net/jiqimiao/archive/2007/04/26/1585665.aspx
    看一下吧,不明白的可以留言给我
      

  10.   

    手机类型里 onchange="javascript:form.submit();"
    然后手机型号下拉菜单的内容根据form.手机类型.value来得到
      

  11.   

    这样不行吧,这是在本页提交.
    这样的话真正要提交到下一页怎么办呀,那就是一个form提交到2个页面了
      

  12.   

    onchange = "checkinfo(this);";
    <script type="text/javascript">
    var xmlHttp;
    function createXMLHttpRequest() { 
        if (window.ActiveXObject) { 
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
        }  
        else if (window.XMLHttpRequest) { 
            xmlHttp = new XMLHttpRequest(); 
        } 
    } function checkinfo(obj){
       var phonetype = obj.value;
       if(phpnetype=="请选择"){
           alert("请选择手机类型");
       }else{
          createXMLHttpRequest();
          var url = "process.jsp?type='"+phonetype+"'";
          xmlHttp.open("GET", url, true);
          xmlHttp.onreadystatechange = checkInfo;
          xmlHttp.send(null);
       }
    }
    function checkInfo(){
      if(xmlHttp.readyState == 4){
            if(xmlHttp.status == 200) { 
                var response = xmlHttp.responseText;
       eval(response);
            }else{ 
        alert("发生请求故障!");
            } 
      }
    }
    </script>
      

  13.   

    用AJAX很好实现的
    一个ONCHANGE事件+JS+AJAX调用数据库数据返回数据
    不就OK了```````AJAX麻烦的话用DWR