2012-04-19 3 views
1

Я пытаюсь получить XML-файл с сервера через ajax, но не могу его разобрать. Я не знаю, что я делаю неправильно. Когда я вызываю 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 (пользовательский класс отлично работает):

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

echo $user->getFriendsList(); 

?> 
+1

вы проверили, выход задается вызовом в поджигатель или консоли ??? –

ответ

2

У вас есть неопределенная переменная 'showElements' в вашем цикле for. Эти две линии:

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

с помощью JQuery для выполнения AJAX звонки легко и без проблем увидеть http://api.jquery.com/jQuery.ajax/ более info

+1

Это не относится к вопросу. –

+0

ya я знаю, но но смотрю на ваш код, я просто предложил вам, потому что чистый код очень помогает в отладке – sohaan

+2

В этом случае вместо этого это будет комментарий. Я не OP btw ... –

Смежные вопросы