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> </td>
<td height="28"> </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"> </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");
这个取出来就是空的了。
实在不明白。
贴在这里求助。望走过路过的大哥大姐们帮帮忙!!
小女子在这里先谢过了