2012-04-19 23 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コードは(ユーザークラスが正常に動作します)です:

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

echo $user->getFriendsList(); 

?> 
+1

あなたは放火犯やコンソールで呼び出しによって与えられた出力をチェックしています? –

答えて

2

forループに未定義の変数 'showElements'があります。この2行:

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

AJAX呼び出しを実行するためにjqueryのを使用することは簡単で、手間のかからないが多くのためhttp://api.jquery.com/jQuery.ajax/を参照してくださいinfo

+1

これは、この質問とはあまり関係ありません。 –

+0

ya私は知っているが、あなたのコードを見ているだけで、私はちょうどあなたにきれいなコードがデバッグに大きく役立つので、あなたを示唆しました – sohaan

+2

その場合、これはコメントでなければなりません。私はOPのbtwではない... –

関連する問題