簡體   English   中英

創建自定義XML,然后通過AJAX獲取

[英]Create custom XML which is then picked up via AJAX

出於某種原因,我一直在使用firebug中的XMLDoc為null。 我想也許我的程序沒有解析我想要生成的XML(這意味着我可能沒有正確地執行它)。

注意:我不想在這里使用JQUERY!

這是我的代碼,它應該生成XML代碼:

<?php
$con = mysql_connect("localhost", "root", "");
if (!$con)
{
    die('Could not connect: ' . mysql_error());
}
mysql_select_db("generic");
$rescult = mysql_query("SELECT * FROM culture order by cult_id");
if (!$rescult) {
    die('Invalid query: ' . mysql());
}
$row = mysql_fetch_row($rescult);
ECHO "<item>";
ECHO "<item1>" . $row[0] . "</item1>" . "<br />";
ECHO "<item2>" . $row[1] . "</item2>" . "<br />";
ECHO "</item>";
?>

這是我的代碼應該解析它:

<html>
<header>
<script type="text/javascript">

if (window.XMLHttpRequest)
{   // Code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp = new XMLHttpRequest();
}
else
{   
    // Code for IE6, IE5
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET","testitout2.php",false);
xmlhttp.send();
xmlDoc = xmlhttp.responseXML;

document.getElementById("item1").value =
xmlDoc.getElementsByTagName("item1")[0].childNodes[0].nodeValue;

document.getElementById("item2").value =
xmlDoc.getElementsByTagName("item2")[0].childNodes[0].nodeValue;

</script>
</header>
    <body>
        <input type="text" id="item1">
        <input type="text" id="item2">
    </body>
</html>

編輯:我沒有注意到async標志。 猜猜我的答案是無關緊要的。

您嘗試在加載之前訪問XML。 將屬性onreadystatechange設置為xmlhttp

 xmlhttp.onreadystatechange = onStateChange;

 function onStateChange() {
    if (xmlhttp.readyState != 4) return; //4 means doc is ready
    var xmlDoc = xmlhttp.responseXML;
 }

您使用的是錯誤的HTML標記: <header>...</header>

嘗試用<head>...</head>替換它,否則瀏覽器可能會跳過您的腳本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM