1

サーバーから ajax 経由で xml ファイルを取得しようとしていますが、解析できません。何が間違っているのかわかりません。getFriends.php を呼び出すと、xml が正常に出力されます。ここにajaxコードがあります:

<!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();

?>
4

2 に答える 2

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;
于 2012-04-19T18:32:50.960 に答える
0

jquery を使用して ajax 呼び出しを実行するのは簡単で手間がかかりません。詳細については、 http://api.jquery.com/jQuery.ajax/を参照してください。

于 2012-04-19T18:07:43.690 に答える