lorry的技术blog

在毁灭中燃烧青春/然后/释放出奇异的光彩

 

求助!求助!关于AJAX的联动下拉列表(下拉框?随便吧!)

JSP文件-----------------------------------------------------------------------------
//省略
<tr>
    <td width="7%" align="right" height="28">服务类别:</td>
    <td height="28" align="left">
     <select size="1" id="SnameSel" onChange="refreshList()">
          <option value="default">请选择服务类别</option>
    <option value="1">001</option>
  <option value="2">002</option>
  <option value="3">003</option>

      </select></td>
  <td>&nbsp;</td>
  <td height="28">&nbsp;</td>
  </tr>
  <tr>
  <tr>
    <td width="7%" align="right" height="28">起始日期:</td>
    <td width="14%" height="28" align="left">
     
        <select id="preYearSel">
        </select>
      年</td>
    <td width="10%" align="left"><select id="preMonSel">
    </select>
      月</td>
    <td width="69%" height="28">&nbsp;</td>
  </tr>
//省略
--------------------------------------------------------------------------------------------
JS文件--------------------------------------------------------------------------------------

--

var XMLHttpReq;//创建XMLHttpRequest对象

 function createXMLHttpRequest() {
    if (window.ActiveXObject) {//IE浏览器
       try {
           XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
       } catch (ex) {
           try {
                XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
           } catch (ex) {}
       }
    } else if (window.XMLHttpRequest) {//Mozilla浏览器
        XMLHttpReq = new XMLHttpRequest();
    }
}
//发送请求函数
function sendRequest(url){
 createXMLHttpRequest();
 XMLHttpReq.open("GET",url,true);
 //alert("sendRequest函数");测试
 XMLHttpReq.onreadystatechange = processResponse;//指定响应函数
 XMLHttpReq.send(null);//发送请求
 }
//处理返回信息函数
function processResponse(){
 if(XMLHttpReq.readyState == 4){//判断对象状态
 //alert("ok");测试通过
  if(XMLHttpReq.status == 200){//信息已经成功返回,开始处理信息
   updateList();
  }else{//页面不正常
   window.alert("您所请求的页面有异常!");
  }
 }
}
//刷新列表框函数
function refreshList(){
 var SnameSel = document.getElementById("SnameSel").value;//得到的是<option>中的value

值,而不是<option></option>中间显示的值 
 if(SnameSel == ""){
  clearList();
  return;
 }else{
  //alert(SnameSel);测试 1
  var url = "../servlet?var=88&SnameSel=" + SnameSel;
  //alert(url);测试 servlet?var=88&SnameSel=1
  sendRequest(url);
 }
}
//更新列表框中列表项函数
function updateList(){
 clearList();

 var preYearSel = document.getElementById("preYearSel");
 var results = XMLHttpReq.responseXML.getElementsByTagName("name");
 var option = null;
//alert(results);
alert(results.length);
 for(var i=0;i<results.length;i++){
  option = document.createElement("option");
  option.appendChild(document.createTextNode(results[i].firstChild.nodeValue));
  preYearSel.appendChild(option);

 }
}
//清除列表框中原有选项的函数
function clearList(){
 var preYearSel = document.getElementById("preYearSel");
 while(preYearSel.childNodes.length > 0){
  preYearSel.removeChild(preYearSel.childNodes[0]);
 }
}
-----------------------------------------------------------------------------------------
servlet文件(放在doGet中进行处理)

//省略
protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
        response.setContentType("text/xml;charset=gb2312");
        request.setCharacterEncoding("gb2312");
     PrintWriter out = response.getWriter();   //创建输出流对象   
        int var = Integer.parseInt(request.getParameter("var"));//接收跳转时带的参数
        switch(var){
         /****************************
         * 处理年的下拉框,即第二级
         *****************************/
            case 88:
                int sname = Integer.parseInt(request.getParameter("SnameSel"));
                if(sname==1){//水费
       
                    out.println("<response>");
                    for(int i=0;i<4;i++){
                    out.println("<name>"+i+"</name>");
                    }
                    out.println("</response>");
                   
                }
                break;
        }
        out.close();
    }

问题:
var results = XMLHttpReq.responseXML.getElementsByTagName("name");
这个取出来就是空的了。
实在不明白。

贴在这里求助。望走过路过的大哥大姐们帮帮忙!!

小女子在这里先谢过了

posted on 2006-09-24 18:19 lorryfang 阅读(182) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

留言簿

文章档案

相册

搜索

最新评论