4

W3SchoolsのAJAXチュートリアルを読み、基本的に同じものである簡単な例を作成しましたが、エラーが発生します。興味があればチュートリアルはここにありました:http ://www.w3schools.com/ajax/ajax_aspphp.asp

PHPファイル(リンクの3番目のコードブロックと同様)に文字列を送信したかったのですが、「要素が見つかりません」というエラーが発生します。Firefoxは、PHPファイルの5行目を強調表示しています?>

AJAXコードを含むファイルの名前は「getHello.html」(.htmlは正しいですか?)で、次のコードが含まれています。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>AJAX Hello World Example</title>
    <script>
        function sayHello(str) {
            if (str.length == 0) {
                document.getElementById("showText").innerHTML = "Hello World!";
                return;
            }
            var xmlHttp = new XMLHttpRequest();
            xmlHttp.onreadystatechange = function() {
                if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
                    document.getElementById("showText").innerHTML = xmlHttp.responseText;
                }
            }
            xmlHttp.open("GET", "sendHello.php?q="+str, true);
            xmlHttp.send();
        }
    </script>
</head>
<body>
    <input type="text" id="textIn" onkeyup="sayHello(this.value);"/><br/><br/>
    <div id="showText"></div>
</body>
</html>

PHPファイルの名前は「sendHello.php」で、次のコードがあります。

<?php
    $q = $_GET["q"];
    $response = "Hello World! Sent: ".$q;
    echo $response;
?>
4

2 に答える 2

1

ローカル サーバーと HTML エディターを使用すると、次のファイルを介して HTML を実行していることを忘れると、(エラー コンソールで) このエラーを取得できます。

于 2013-06-16T17:00:46.013 に答える
0

あなたのサンプルコードは私にとってはうまくいきました。ページを更新し、制御しているサーバーで実行していても動作しない場合は、サーバーも再起動します (サーバー側のキャッシュが有効になっている可能性があります)。はい、.html は PHP コードが含まれていないため、getHello.html の正しい拡張子です。

于 2013-02-25T03:25:42.337 に答える