2012-04-19 82 views
1

我想通過ajax從服務器檢索一個xml文件,但不能解析它。我不知道我做錯了什麼。當我調用getFriends.php時,它會打印xml的罰款。這裏是Ajax代碼:AJAX不工作PHP

<!DOCTYPE> 
<html> 
<head> 
<title>Ajax Sample</title> 

<script type="text/javascript"> 

function getFriendsList(MemberId) { 

    var xmlhttp; 

    if (window.XMLHttpRequest) { 
     // code for IE7+, Firefox, Chrome, Opera, Safari 
      xmlhttp=new XMLHttpRequest(); 
    } 
    else { 
     // code for IE6, IE5 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    xmlhttp.onreadystatechange=function() { 

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

      var xmlDoc = xmlhttp.responseXML; 
      var friendElements = xmlDoc.getElementsByTagName('friend'); 

      for (var x=0; x<friendElements.length; x++) { 
       // We know that the first child of show is title, and the second is rating 
       var id = showElements[x].childNodes[0].value; 
       var name = showElements[x].childNodes[1].value; 

       // Now do whatever you want with the show title and ratings 
       document.write("hi"); 
      } 

     } 
    } 

    xmlhttp.open("POST","getFriends.php",true); 
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
    xmlhttp.send("id=" + MemberId); 

} 

</script> 

</head> 

<body> 

    <input name="ajax" type="button" onClick="getFriendsList(1)" value="Click for AJAX"> 
    <div style="background-color:#00FF99;" id="placehere">Here is where the update will occur.</div> 
</body> 
</html> 

這裏是getFriends.php代碼(用戶級工作正常):使用jQuery執行AJAX調用

<?php 
include('lib.php'); 
//$id = $_POST['id']; 
$id=1; 
$user = new User($id); 

echo $user->getFriendsList(); 

?> 
+1

你檢查過的輸出通過螢火蟲或控制檯呼叫給出??? – 2012-04-19 18:02:35

回答

2

您的for循環中有未定義的變量'showElements'。這兩條線路:

var id = showElements[x].childNodes[0].value; 
var name = showElements[x].childNodes[1].value; 

應改爲:

var id = friendElements[x].childNodes[0].value; 
var name = friendElements[x].childNodes[1].value; 
0

是容易的,無憂無慮看http://api.jquery.com/jQuery.ajax/更多info

+1

這與問題有些不相干。 – 2012-04-19 18:09:50

+0

雅我知道,但看着你的代碼我只是建議你,因爲乾淨的代碼大大有助於調試 – sohaan 2012-04-19 18:12:49

+2

在這種情況下,這應該是一個評論,而不是。我不是OP的btw ... – 2012-04-19 18:13:41