ajax做三级菜单 请大神指教一下servlet中的response返回值的问题
在我servlet中接到ajax发过来的请求后再dopost里是
response.getWriter().write(last_xml);
这么返回的,last_xml是个字符串。
在JSP界面是这样取出返回值的
//解析返回xml的方法
function DBName_parseMessage(){
var xmlDoc = xmlHttp.responseXML.documentElement;//获得返回的XML文档
var xSel = xmlDoc.getElementsByTagName('select');
//获得XML文档中的所有<select>标记
var select_root = document.getElementById('tablename');
//获得网页中的第二个下拉框
select_root.options.length=0;
//每次获得新的数据的时候先把第二个下拉框架的长度清0
for(var i=0;i<xSel.length;i++){
var xValue = xSel[i].childNodes[0].firstChild.nodeValue;
//获得每个<select>标记中的第一个标记的值,也就是<value>标记的值
var xText = xSel[i].childNodes[1].firstChild.nodeValue;
//获得每个<select>标记中的第二个标记的值,也就是<text>标记的值
var option = new Option(xText, xValue);
//根据每组value和text标记的值创建一个option对象
try{
select_root.add(option);//将option对象添加到第二个下拉框中
}catch(e){
}
}
}
想问一下我如果想用response传俩条信息回来应该怎么写???就是在response.getWriter().write(last_xml)的write里加个key值,在JSP界面用key值取出不同的xml内容!谢谢各位了
------解决方案--------------------你换个思路,把你的返回xml外边再多加一层<key id="key_0"><select......></key><key id="key_1">....</key>这样试试?
------解决方案--------------------和你现在一样拼接好返回。
------解决方案--------------------<selects><select><value>All</value><text>全部</text></select><select><value>Table4</value><text>Table4</text></select><select><value>Table5</value><text>Table5</text></select></selects>
改为:
<selects><select id="select_0"><value>All</value><text>全部</text></select><select><value>Table4</value><text>Table4</text></select><select><value>Table5</value><text>Table5</text></select><select id="select_1"><value>All</value><text>全部</text></select><select><value>Table4</value><text>Table4</text></select><select><value>Table5</value><text>Table5</text></select></selects>
读取的时候:
var xSel_0 = xmlDoc.getElementsById('select_0');
var xSel_1 = xmlDoc.getElementsById('select_1');