没有人回答我的问题吗?还是我的问题说得不够清楚。我是想实现这样的功能。
jsp页面有2个下拉菜单,“产品”的下拉菜单显示的选项取决于“公司”下拉菜单选择的选项。
例如,我在“公司”下拉菜单选择“微软”,“产品”下拉菜单的所有选项自动变成微软公司的产品,例如word,excel,windowsXP等等,当我选择“惠普”后,“产品”选项就变成NC6000笔记本,服务器等等。如何实现。

解决方案 »

  1.   

    你说的是<select>嘛?两种方法:一是提前取得所有菜单项,用javascript控制。二是改变一个菜单项提交一次form,然后从后台读出对应的内容显示在另一个<select>里面。
      

  2.   

    我明白你的意思,我打算用前一种方法,用javascript控制,请问如何控制阿,谁能提供类似的代码?
      

  3.   

    例如点击<select>中某项,动作时什么?onclick()吗?javascript中如何改变<select>中的选项呢?谁能示范一下代码,剩下的我自己考虑。我对javascript还不熟悉。
      

  4.   

    给个〈SCELECT〉的例子
    <script>
    function select()
    {
    switch(document.form1.user.option[document.form1.useruser.selectdIndex].value
    {
           case"工商银行":
           {
           document.form1.user.option[0].selectd=true;return
            }
           case"建设银行"
           {
           document.form1.user.option[1].selsectd=true;return
           }
           case"农业银行"
           {
           document.form1.user.option[2].selsectd=true;return
           }
    }
    }
    </script>
    <body>
    <form name="form1" method="post" action="*.asp">
    <select name="useruser" onchange="select()">
    <option selecd>选择银行</option>
    <option value="50000w">50000w</option>
    <option value="100000w>100000w</option>
    <option vlaue="200000w>200000w</option>
    </select>
    <slect name="user">
    <option value="a">A</option>
    <option value="b">B</option>
    <option vlaue="c">C</option>
    </select>
      

  5.   

    <--------------高手看过来! 能不能搞定这个?
    http://community.csdn.net/Expert/topic/3472/3472337.xml?temp=.1701624
      

  6.   

    在javascript中能否调用SQL语句从数据库中读取数据?有例子吗?
      

  7.   

    接ouyld(ゎたしすきぁぉた的
    选中‘公司’菜单后需要对‘产品’菜单进行遍历
    这样才能找出全部你所需要的结果
    具体的去搜一下,这方面的好多javascript是在客户端执行的,不能对服务器操作
    可以这样
    <script>
    <%...%>
    </script>
    道理一样的,因为服务器端的代码先加载
      

  8.   

    表productInfo中有
    company     products
    --------    ----------
    HP          NC6000
    MicroSoft   WindowsServer2003
    HP          HP1120
    MicroSoft   WindowsXP
    MicroSoft   Office<script language="JavaScript" type="text/JavaScript">
    function ChangeList(Obj){
      document.all.products.length=1
      if(Obj.value>0){
       thelist=eval("d"+Obj.value)
       for (var i=0;i<eval(thelist).length;i++){
         document.all.products.options[i+1]=new Option(eval(thelist)[i])
       }
      }
    }
    </script>
    <%
    response.Write("部门:<select name='company' id='company' OnChange='ChangeList(this)'><option selected>选择公司 </option>")
    dim strP,allP
    set Conn= Server.CreateObject("ADODB.Connection")
    Conn.Connectionstring= ".................."
    Conn.open
    allP="<script language='JavaScript' type='text/JavaScript'>"
    set Rs_C= Server.CreateObject("ADODB.Recordset")
    set Rs_P= Server.CreateObject("ADODB.Recordset")
    Rs_P.open "select * from productInfo",Conn,1,1
    Rs_C.open "select company from productInfo group by company",Conn,1,1
    x=1
    While NOT Rs_C.EOF
    response.Write("<option value='"&x&"'>"&trim(Rs_C("company"))&"</option>"&chr(13))
    Rs_P.Filter= "company='"&Rs_C("company")&"'"
    While NOT Rs_P.EOF
    strP=strP&"'"&trim(Rs_P("products"))&"',"
    Rs_P.MoveNext
    wend
    allP=allP&chr(13)&"var d"&x&"=new Array("&left(strP,len(strP)-1)&")"
    strP=""
    Rs_C.MoveNext
    x=x+1
    wend
    allP=chr(13)&allP&chr(13)&"</script>"
    Rs_P.close
    set Rs_P=nothing
    Rs_C.close
    set Rs_C=nothing
    Conn.close
    set Conn=nothing
    response.Write("</select>")
    Response.Write(allP)
    Response.Write("产品:<select name='products' id='products'><option value='0' selected>选择产品 </option></select>") 
    %>前段时间做的
    这个关联菜单让我明白了自己的js有多差劲
    反正功能是实现了
      

  9.   

    有相关的jsp代码吗?我用jsp的。谢谢。
      

  10.   

    jsp的不懂,没法给你代码
    思路都是一样
    用jsp生成的东西送到客户端是下面这个样子就成<script language="JavaScript" type="text/JavaScript">
    function ChangeList(Obj){
      document.all.products.length=1
      if(Obj.value>0){
       thelist=eval("d"+Obj.value)
       for (var i=0;i<eval(thelist).length;i++){
         document.all.products.options[i+1]=new Option(eval(thelist)[i])
       }
      }
    }
    </script>
    部门:<select name='company' id='company' OnChange='ChangeList(this)'>
    <option selected>选择公司 </option>
    <option >MicroSoft</option>
    <option >HP</option>
    </select>
    <script language="JavaScript" type="text/JavaScript">
    var d1=new Array("WindowsServer2003","WindowsXP","office")
    var d2=new Array("NC6000","HP1120")
    </script>
    产品:<select name='products' id='products'>
    <option value='0' selected>选择产品 </option>
    </select>
      

  11.   

    楼上的兄弟,你确认你的代码能用吗?我把你的客户端的代码copy到空白html页上,点击部门,产品项并没有变化哦?
      

  12.   

    <option value="1">MicroSoft</option>
    <option value="2">HP</option>
    option里面给上value就对了
    上面的asp代码就是好的
      

  13.   

    谢谢。可惜那是客户端的网页代码,问题还是没有解决,服务端的jsp源代码该如何写,有朋友能提供代码看看吗?
      

  14.   

    <option >MicroSoft</option>
    <option >HP</option>
    </select>
    <script language="JavaScript" type="text/JavaScript">
    var d1=new Array("WindowsServer2003","WindowsXP","office")
    var d2=new Array("NC6000","HP1120")
    </script>
    就以上这部分是在服务器根据数据库的数据动态生成,其他的都一样
    只能说到这样了,要不我就得学jsp了
      

  15.   

    看看这个:
    http://fason.nease.net/samples/select/
    个人建议用xmlhttp
    jsp的文件就很简单了
    祝好运
      

  16.   

    ================================<table width="100%" height="32"  border="0" cellpadding="0" cellspacing="0" class="greenLightBg">
      <form name="form1" method="post" action="">
        <tr>
          <td nowrap>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;地区
              <select name="country" class="formElem" onchange="javascript:changeCountry(this);">
                <option selected>国家</option>
              </select>
    &nbsp;
            <select name="province" class="formElem" onchange="changeProvince(this);">
              <option selected>省份</option>
            </select>
    &nbsp;
            <select name="city" class="formElem">
              <option selected>地级</option>
            </select>
    &nbsp;</td>
        </tr>
      </form>
      <SCRIPT language=javascript>
    <!-- //area methods
    function Area(catid,id,title) {
    this.catid=catid;
    this.id=id;
    this.title=title;
    this.getOption=getOption;
    } function getOption() {
    return new Option(this.title,this.id);
    }
    //选择省份的函数
    function changeProvince(list) {
    var len;
    var tmpId;
    var tmpNum=1;
    //清空地级的列表值
    len = cityForm.options.length;  
    for (var i=len-1;i>0;i--){
    cityForm.options[i]=null;
    }
    //如果选择了省份,则取地级列表值
    if (list.selectedIndex>0) {

    //得到省份的ID
         tmpId = list.options[list.selectedIndex].value;
        
         //得到地级数组的长度
         len=CityArr.length;   
          
         //根据省份ID来取相应的地级
         for (var i=0;i<len;i++) {
         if (CityArr[i].catid==tmpId) {
         cityForm.options[tmpNum]=CityArr[i].getOption(); 
         tmpNum++;   
         }
         }
    }

    //使地级默认状态
    cityForm.options[0].selected=true;
    }

    //选择国家的函数
    function changeCountry(list){
    var len;
    var tmpId;
    var tmpNum=1;
    //清空省份的列表值
    len = provinceForm.options.length;
    for (var i=len-1;i>0;i--){
    provinceForm.options[i]=null;
    }
    //清空地级的列表值
    len=cityForm.options.length;
    for (var i=len-1;i>0;i--){
    cityForm.options[i]=null;
    }
    //如果选择了国家,则取省份列表
    if (list.selectedIndex>0) { //得到国家的ID
         tmpId = list.options[list.selectedIndex].value;     //得到省份数组的长度
         len=ProvinceArr.length;
        
         //根据国家ID来取相应的省份
         for (var i=0;i<len;i++) {
         if (ProvinceArr[i].catid==tmpId) {
         provinceForm.options[tmpNum]=ProvinceArr[i].getOption(); 
         tmpNum++;   
         }
         }
    }
    //使省份和地级默认状态
    provinceForm.options[0].selected=true;
    cityForm.options[0].selected=true; } //static methods
    var CountryArr = new Array(); //国家数组
    var ProvinceArr = new Array(); //省份数组
    var CityArr = new Array(); //地级数组 var countryForm = document.all.country;
    var provinceForm = document.all.province;
    var cityForm = document.all.city;

    //赋值国家列表框
    countryForm.options[1] = new Option("中国",1);
    countryForm.options[2] = new Option("日本",2);
    //取国家 "1" 代表中国    "2" 代表日本
           CountryArr =CountryArr.concat(new Area(0,1,'中国')); CountryArr =CountryArr.concat(new Area(0,2,'日本'));
    //取省份 
    ProvinceArr=ProvinceArr.concat(new Area(1,3,'福建'));
    ProvinceArr=ProvinceArr.concat(new Area(1,4,'江苏'));
    ProvinceArr=ProvinceArr.concat(new Area(2,5,'东京'));
    ProvinceArr=ProvinceArr.concat(new Area(2,6,'大阪'));
    //取城市

    CityArr=CityArr.concat(new Area(3,7,'厦门'));
    CityArr=CityArr.concat(new Area(3,8,'福州'));
    CityArr=CityArr.concat(new Area(4,9,'苏州'));
    CityArr=CityArr.concat(new Area(4,10,'南京'));
    CityArr=CityArr.concat(new Area(5,11,'东京1'));
    CityArr=CityArr.concat(new Area(6,12,'大阪1'));
    -->
            </script>
    </table>
      

  17.   

    楼上的兄弟,谢谢你给的代码,可是我要的select的option数据是要从jsp代码中读取oracle中表格的数据,并不是在javascript中事先准备好的。
      

  18.   

    那问题放到jsp专区去好了
    把这个帖在jsp区弄个链接
      

  19.   

    不知道啊。楼主,你应该贴到Jsp区。不该在JAVASCRIPTl中
    这段代码你可以用,你所作的只要用JSP生成这个数组就行了。另外我这段代码就是用在JSP里面的。
      

  20.   

    谁能提供jsp的源代码,一定加分!
      

  21.   

    一个新开的商业源码站点,大家支持一下  
    有ERP源码和文档  
    http://www.czrx.com/get.asp?get=iamcfr