本帖最后由 ypchengmsdn 于 2009-11-29 21:36:49 编辑

解决方案 »

  1.   

    没懂你的意思,给个二级联动菜单的例子,自己参考下:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title> New Document </title>
    <script language="JavaScript" type="text/javascript">
    <!--
    //按照省份下拉列表框的顺序定义二维数组,将城市列表对应到省份
    var city=[
    ["北京","天津","上海","重庆"], //直辖市
    ["南京","苏州","南通","常州"], //江苏省
    ["福州","福安","龙岩","南平"], //福建省
    ["广州","潮阳","潮州","澄海"], //广东省
    ["兰州","白银","定西","敦煌"] //甘肃省
    ];

    function getCity(){
    //获得身省份和城市下拉列表框的引用
    var sltProvince=document.forms["theForm"].elements["province"];
    var sltCity=document.forms["theForm"].elements["city"];
    //得到对应于省份的城市列表数组
    var provinceCity=city[sltProvince.selectedIndex-1];

    //将城市下拉列表框清空,仅留第一个提示选项
    sltCity.length=1;
    //将相应省市的城市填充到城市选择框中
    for(var i=0;i<provinceCity.length;i++){
    //创建新的Option对象并将其添加到城市下拉列表框中
    sltCity[i+1]=new Option(provinceCity[i],provinceCity[i]);
    }
    }

    function getCity2(){
    //获得身省份和城市下拉列表框的引用
    var sltProvince=document.forms["theForm"].elements["province"]; //得到省份下拉列表的对象
    var sltCity=document.forms["theForm"].elements["city"]; //得到城市下拉列表的对象

    if (sltProvince.options[0].value == "0"){
    sltProvince.options[0] = null;
    }
    //alert(sltProvince.selectedIndex);
    //得到对应于省份的城市列表数组
    var provinceCity=city[sltProvince.selectedIndex];

    //将城市下拉列表框清空,仅留第一个提示选项
    sltCity.length=1;
    //将相应省市的城市填充到城市选择框中
    for(var i=0;i<provinceCity.length;i++){
    //创建新的Option对象并将其添加到城市下拉列表框中
    sltCity[i]=new Option(provinceCity[i],provinceCity[i]);
    }
    }

    //刷新时使省份还原:
    function f5(){
    var sltProvince=document.forms["theForm"].elements["province"];
    sltProvince.options[0].selected = true;
    }
    //-->
    </script>
    </head>
    <body onLoad="f5()"><form name="theForm" >
    <select name="province" onChange="getCity2()">
    <option value="0">请选择所在省份</option>
    <option value="直辖市">直辖市</option>
    <option value="江苏省">江苏省</option>
    <option value="福建省">福建省</option>
    <option value="广东省">广东省</option>
    <option value="甘肃省">甘肃省</option>
    </select>
    <select name="city">
    <option value="0">请选择所在城市</option>
    </select>
    </form>
    </body>
    </html>
      

  2.   

    谢谢楼上,我的意思是说我在一级分类的下拉框里选择一级分类的名称,然后就将这个fType_name(名称)
    传到onchange()函数里处理,并把这个值传到我的项目的Action的addGoodsInfo方法内,并获取到这个值,就行了,然后我就会根据这个id查询到二级分类的信息了,现在我想知道怎么在JavaScript中把这个fType_name获取并转发到我的项目路径下,即:IEshopping/ProductModify!addGoodsInfo.do(Action中的方法)??
      

  3.   

    <script type="text/javascript"> 
    function selectinfo()
      {
        var infos=document.getElementById("fType_name");
        var value;
        for(var i=0;i<infos.length;i++)
        {
          if(infos[i].selected==true)
          {
            value=infos[i].value;
          }
        }
        alert(value);
      }</script>
    这里的Value就是你想要得的值了吧,之后就看你再去处理一下了
      

  4.   

    先谢过以上各位了,问题我已经解决了:
      总结一下,和大家分享:
      jsp 页面:
      
      <TD width="450">
         <select  name="fType_name" id="fType_name" onchange="changeValue(this.value);">
      <option selected ="selected">一级分类选择</option>
     <s:iterator value="listFirst" id="productFirstType">
       <option value="<s:property value="fType_id"/>">
        <s:property value="fType_name"/>
       </option>
    </s:iterator>
         </select>
       </TD>
      
      Action :
      
          response.setContentType("text/xml");
          response.setHeader("Cache-Control", "no-cache");
          request.setCharacterEncoding("GBK");
          response.setCharacterEncoding("UTF-8");
          int id = Integer.parseInt(request.getParameter("id").trim());
          listSconds = goods_infoService.findScondsTypeById(id); 
          String xml_start = "<sType_names>";
          String xml_end = "</sType_names>";
          String xml = "";
          String last_xml = "";
          if(listSconds.size()==0){
           xml = "<sType_name><value>0</value><text>目前没有二级分类</text></sType_name>";
           last_xml = xml_start + xml + xml_end;
          } else {
          for (int i = 0; i < listSconds.size(); i++) {
              xml += "<sType_name><value>" + listSconds.get(i).getsType_id()              + "</value><text>"
                    + listSconds.get(i).getsType_name() + "</text></sType_name>";
          }
          }
          last_xml = xml_start + xml + xml_end;
          response.getWriter().write(last_xml);
          response.getWriter().flush();
          response.getWriter().close();
        js :   
       //创建连接,判断浏览器 
            var http_request = false;
    function createXMLHttpRequest() {
    if (window.XMLHttpRequest) {
    XMLHttpReq = new XMLHttpRequest(); //创建对象对应不同的浏览器
    }
    else if (window.ActiveXObject) {
    try {
    XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
    try {
    XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (e) {
            }
    }
    }
    }
    //onchange事件 
    function changeValue(id) {   //当第一个下拉框的选项发生改变时调用该函数
    alert("sadfsad");
    sendRequest("ProductModify!scondsType.do?id="+id); //发送参数到SERVLET
    //值得注意的是URL的servlet地址前面不加“/”并且为小写字母(试验的结论)
    }
    //发送请求 
    function sendRequest(url) { //发送函数
    createXMLHttpRequest();
    XMLHttpReq.open("GET", url, true);
    XMLHttpReq.onreadystatechange = progessRequest;//调用相关的XML接受函数 
    XMLHttpReq.send(null);
    }
    //判断接收请求 
    function progessRequest() {
    if (XMLHttpReq.readyState == 4) {
    if (XMLHttpReq.status == 200) {
    var xmlDoc = XMLHttpReq.responseXML; //获取返回的XML文档

    var sType_name = xmlDoc.getElementsByTagName("sType_name");//获取XML节点

    var obj = document.getElementById("sType_name");//获取第二级菜单的对象
    if (obj != null) { //如果不为空就置空 
    obj.options.length = 0;
    }
    for ( var i = 0; i < sType_name.length; i++) { //用循环给select中加值 
    var xValue = sType_name[i].childNodes[0].firstChild.nodeValue;
    var xText = sType_name[i].childNodes[1].firstChild.nodeValue;
    var option = new Option(xText, xValue);
    try {
    obj.add(option);
    } catch (e) {
    }
    }
    } else {
    alert("请求异常" + XMLHttpReq.responseText);
    }
        }
      }    
         
      

  5.   

    http://www.javaeye.com/topic/103265
    看看这