2012-04-19 10 views
1

ajax를 통해 서버에서 XML 파일을 가져 오려고하는데 파싱 할 수 없습니다. 내가 뭘 잘못하고 있는지 모르겠다. getFriends.php를 호출하면 XML이 잘 인쇄됩니다. 여기 아약스 코드 :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를 사용

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

echo $user->getFriendsList(); 

?> 
+1

님의 출력이 불을 지르고 또는 콘솔의 호출에 의해 주어진 확인했다 ??? –

답변

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/을 볼 무료로 쉽고 번거 로움입니다 정보

+1

이것은 약간의 질문과 관련이 없습니다. –

+0

나중에 알지만하지만 당신의 코드를보고 난 그냥 당신을 제안했습니다 왜냐하면 깨끗한 코드가 디버깅에 크게 도움이되기 때문입니다 – sohaan

+2

그 경우에는 주석이되어야합니다. 나는 OP btw가 아니다 ... –

관련 문제