日期:2014-05-17  浏览次数:20676 次

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');