http://community.csdn.net/Expert/topic/5098/5098613.xml?temp=.1111109
选择数据用xmlhttp或者iframe
http://news.newhua.com/html/Asp/2005-11/10/05111017175019360_3.shtml

解决方案 »

  1.   

    这就是所谓级联的问题.
    ref:
    http://www.jscode.cn/JsHtml/Js454.htm
      

  2.   

    看你的数据是不是从数据库中调用数据了
    调用数据情况jsp:
    .....
    <script language="javascript">
       var XHR=null;
       var part=null;
       var subPart=null;
       function initAjax()
       {
         if(window.XMLHttpRequest)
         {
            return(new XMLHttpRequest());
         }
         else if(window.ActiveXObject)
         {
            try{
               return(new ActiveXObject("MSXML2.XMLHttp");
            }
            catch(XHRERROR){
               try{
                   return(new ActiveXObject("Microsoft.XMLHttp");
               }
               catch(MISE){}
         }
       } 
       function callSub(param)
       {
          part=document.getElementById("breakPart");
          subPart=document.getElementById("subPart");
          XHR=initAjax();
          if(!XHR)return;
          XHR.open("get","getSubPart?MainPart="+param,true);
          XHR.onreadystatechange=callBack;
          XHR.send(null)
       }
       function callBack()
       {
          if(XHR.readystate==4)
          {
             if(XHR.status==200)
             {
                var domObj=XHR.responseXML;
                var subParts=domObj.selectNodes("//sub");
                subPart.options.length=0;
                for(var i=0;i<subParts.length;i++)
                {
                   var name=subParts[i].getAttribute("name");
                   var value=subParts[i].getAttribute("value");
                   var opt=new Option(name,value);
                   part.add(opt);
                }
             }
          }
       }
    </script>
    <jsp:userBean id="part" class="...." scope="page" />
    <%
       String[][] arrList=part.arrayList;
    %>
    <select id="breakPart" name="breakPart" onchange="callSub(this.options[this.selectedIndex].value)">
      <option value="">--请选择--</option>
      <%
       for(int i=0;i<arrList.length();i++)
       {
          out.print("<option value=\""+arrList[i][0]+"\">"+arrList[i][1]+"</option>\n");
       }
      %>
    </select>
    <select id="subPart" name="subPart">
    </select>
    ==========
    Servlet
    -----------
    import 
    .....
    public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException{
       String sMainPart=request.getParameter("MainPart");
       if(!sMainPart.equals("") && !sMainPart)
       {
           DB db=new DB();   //实例化一个数据库对象;
           db.connect();
           Object[] obj=db.Query("select name,value from subPart where mainPart='"+sMainPart+"'");
           response.setContentType("text/xml;charset=UTF-8");
           PrintWriter out=response.getWriter();
           out.println("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>");
           out.println("   <main>");
           for(int i=0;i<obj.length();i++)
           {
              String[] rs=(String[])obj[i];
              String name=rs[0];
              String value=rs[1];
              out.println("     <sub name=\""+name+"\" value=\""+value+"\");
           }
           out.println("</main>");
           db.disconnect();
       }
    }
    .......
      

  3.   

    <html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <title>New Page 1</title>
    <script language="javascript">
       var main=new Array();
       var sub=new Array();
       var oMain=null;
       var oSub=null;
       function init()
       {
          oSub=document.all["sub"];
          oMain=document.all["main"];
          
          main[0]=new Array("叶片","a");
          main[1]=new Array("燃烧室","b")
          sub["a"]=new Array(new Array("叶片","1"),new Array("叶尖","2"),new Array("叶根","5"));
          sub["b"]=new Array(new Array("外壳","3"),new Array("内环","4"));      for(var i=0;i<main.length;i++)
          {
              oMain.add(new Option(main[i][0],main[i][1]));
          }
       }
       
       function $S(v)
       {
          if(v.length>0){
            oSub.length=0;
            eval("arraySub=sub[\""+v+"\"]");
         
            for(var i=0;i<arraySub.length;i++)
            {
                oSub.add(new Option(arraySub[i][0],arraySub[i][0]));
            }
          }
       }
      window.onload=init;
    </script>
    </head><body>
    <select id="main" name="main" onchange="$S(this.options[this.selectedIndex].value)">
      <option value="">请选择</option>
    </select>
    <select id="sub" name="sub">
      <option value="">请选择</option>
    </select>
    </body></html>