主要是  
/*--得到远程数据--*/  
var  oReq;  
x  =  new  ActiveXObject("Microsoft.XMLDOM");  
function  getRemoteData(field1,field2,option)  
{  
 var  strA  =  "";  
 oReq  =  new  ActiveXObject("Microsoft.XMLHTTP");  
 oReq.open("POST","xml.jsp?field1="+field1+"&field2="+field2+option,false);  
 oReq.setRequestHeader("Content-Length",strA.length);  
 oReq.setRequestHeader("Content-type","application/x-www-form-urlencoded");  
 oReq.send(strA);  
}  
这一段。看不懂?

解决方案 »

  1.   

    /*--得到远程数据--*/
    var oReq;
    x = new ActiveXObject("Microsoft.XMLDOM");
    //创建一个Microsoft.XMLDOM对象,该对象有几个比较常用的方法:
    //load(String yourxmlfile)--从指定的位置装载一个xml文档;
    //loadXML(String yourxmlstring)--装载一个符合xml格式的字符串;
    function getRemoteData(field1,field2,option)
    {
     var strA = "";
     oReq = new ActiveXObject("Microsoft.XMLHTTP");
     //创建一个Microsoft.XMLHTTP对象
     /*
     XMLHTTP是微软的又一项基于XML的数据交换技术,主要用于在服务器与客户端交换XML数据。
     该技术源于微软在其XML DOM实现中引入的一个重要对象——XMLHttpRequest(Microsoft.XMLHTTP),
     它可以为客户端提供同HTTP服务器通讯的协议支持。
     简而言之,它允许你打开一个到服务器上的HTTP连接,然后发送和接受数据,
     并且利用Microsoft XML DOM对返回数据进行解析。
     */
     oReq.open("POST","xml.jsp?field1="+field1+"&field2="+field2+option,false);
     /*
     初始化一个MSXL2。XMLHTT请求,并指定请求的方式(post或get,在这里指定是POST方式),URL及是否需要验证信息:
     false不需要,true则需要。
     */
     oReq.setRequestHeader("Content-Length",strA.length);
     oReq.setRequestHeader("Content-type","application/x-www-form-urlencoded");
      //设定请求的头部
     oReq.send(strA);
     //发送到HTTP请求到服务器端并接收服务器端的响应
    }
      

  2.   

    /*--重画下拉框--*/
    function changeSelect(select,source,target,option)

     getRemoteData(target,option,"&"+source+"="+select.options[select.selectedIndex].value); 
     clearSelect(eval("form1."+target));//eval是js的一个方法,返回一个值(form1.+变量target的值)
     fillSelect(eval("form1."+target));
     //调用getRemotData,clearSelect,fillSelect方法;
    }/*--清空下拉框--*/
    function clearSelect(select)
    {
     select.options.length = 0;//删去指定select对象里的options选项
     select.options[select.options.length]= new Option("--请选择--","");//创建一个option对象。
    }/*--填充下拉框--*/
    function fillSelect(select)
    {
    //装载HTTP请求回来的字符串,
     x.loadXML(oReq.responseText);
     n=x.selectNodes("/root/id");//selectNodes根据"/root/id"返回与之匹配的IXMLDOMNodeList对象
     if(n!=null)
     {  
      for(i=0;i<n.length;i++)
      {
       //在指定的select对象里创建options对象,
       //最终结果是生成例如"<option value=xxx>xxx</option>"的html代码。
       select.options[select.options.length]=new Option(n(i).text,n(i).text);
      }
     }
    }
      

  3.   

    //xml.jsp
    <%@ page import="java.sql.*"%>
    <%@ page contentType="text/html;charset=GBK"%>
    <jsp:useBean id="operate" scope="page" class="SqlDispose"/>
    <root>
    <%
    //这段是对数据库的操作,在此不多说。
    ResultSet rs;
    String sql;
    String temp;
    String field1,field2;
    field1 = request.getParameter("field1");
    field2 = request.getParameter("field2");temp = new String(request.getParameter(field2).getBytes("ISO8859-1"),"GBK");
    sql = "select "+field1+" from product where "+field2+"='"+temp+"' group by "+field1;
    rs = operate.rs(sql);
    while(rs.next())
    {
     out.println("<id>"+rs.getString(1)+"</id>");
    }
    %></root>/*以上这段主要是生成一个格式如:
      <root><id>1</id><id>2</id><id>3</id><id>4</id>...</root>的字符串,然后返回给客户端。
      其实这段值就是oReq.responseText的值;
      用alert(oReq.responseText);就可以看到了。
       x.loadXML(oReq.responseText);
    */
    哎呀,13点多了,得午休了。写得比较乱,不好意思。 :-)