3

当页面加载时,此函数运行,但仅到达警报 2,我怀疑由于上一行中的错误,它没有到达警报 3 var id_array = xmlDoc.getElementsByTagName("id");。我曾尝试研究getElementsByTagName()我是否正确使用它,但我仍然觉得我是。

var xmlhttp;
xmlhttp=new XMLHttpRequest();

xmlhttp.onreadystatechange=function() {
    if (xmlhttp.readyState==4 && xmlhttp.status==200){

        var xmlDoc = xmlhttp.responseXML;
    alert("2");
        var id_array = xmlDoc.getElementsByTagName("id");
    alert("3");
    for(id in id_array)
    {
        // do something with the id 
    }
    }
}
xmlhttp.open("POST", "xmlDoc.xml", true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send(); 
alert("1");

这是它应该读取的 xml 文档的示例。实际文件生成 x 数量的“id”,其中包含来自 sql 数据库的不同信息。

<id>
    <name><![CDATA[<?php echo $query_array["name"]; ?>]]></name>
    <latitude><![CDATA[<?php echo $query_array["latitude"]; ?>]]></latitude>
    <longitude><![CDATA[<?php echo $query_array["longitude"]; ?>]]></longitude>
    <color><![CDATA[<?php echo $color_array["color_id"]; ?>]]></color>
    <color_r><![CDATA[<?php echo $color_array["red"]; ?>]]></color_r>
    <color_g><![CDATA[<?php echo $color_array["green"]; ?>]]></color_g>
    <color_b><![CDATA[<?php echo $color_array["blue"]; ?>]]></color_b>
    <text><![CDATA[<?php echo $user_array["comment"]; ?>]]></text>
</id>
<id>
    <name><![CDATA[<?php echo $query_array["name"]; ?>]]></name>
    <latitude><![CDATA[<?php echo $query_array["latitude"]; ?>]]></latitude>
    <longitude><![CDATA[<?php echo $query_array["longitude"]; ?>]]></longitude>
    <color><![CDATA[<?php echo $color_array["color_id"]; ?>]]></color>
    <color_r><![CDATA[<?php echo $color_array["red"]; ?>]]></color_r>
    <color_g><![CDATA[<?php echo $color_array["green"]; ?>]]></color_g>
    <color_b><![CDATA[<?php echo $color_array["blue"]; ?>]]></color_b>
    <text><![CDATA[<?php echo $user_array["comment"]; ?>]]></text>
</id>
<id>
    <name><![CDATA[<?php echo $query_array["name"]; ?>]]></name>
    <latitude><![CDATA[<?php echo $query_array["latitude"]; ?>]]></latitude>
    <longitude><![CDATA[<?php echo $query_array["longitude"]; ?>]]></longitude>
    <color><![CDATA[<?php echo $color_array["color_id"]; ?>]]></color>
    <color_r><![CDATA[<?php echo $color_array["red"]; ?>]]></color_r>
    <color_g><![CDATA[<?php echo $color_array["green"]; ?>]]></color_g>
    <color_b><![CDATA[<?php echo $color_array["blue"]; ?>]]></color_b>
    <text><![CDATA[<?php echo $user_array["comment"]; ?>]]></text>
</id>

所以我的预期行为是 id_array (在这个例子中)得到 3 个单元格(每次出现一个),每个单元格都包含标签中的所有数据。

但同样,我怀疑 id_array 分配中的一个错误正在阻止任何事情发生。

任何帮助都会很棒!

4

1 回答 1

0

xmlhttp.setRequestHeader('Content-Type',  'text/xml');

看看是否

xmlhttp.responseXML

尝试做时不产生null导致错误.getElementsByTagName("id")

于 2012-09-28T23:20:08.780 回答