0

これまでに Ajax + Javascript について学んだことから、この小さなスクリプトを作成しました。これをChromeで実行しているので、 XMLHttpRequest();動作するはずです

PHP、

    $conn = new PDO('mysql:host=localhost; dbname=test', 'root', '')

    $stmt = $conn->query("SELECT text FROM ajax");
    foreach($stmt as $each){

?>

アヤックス、

<script type='text/javascript'>

    var request = new XMLHttpRequest();
    request.open('GET', <?php echo $each['text']; ?>, false);
    request.send();
    console.log(request);

</script>
<?php } ?>

さて、testtbl 名がであるデータベースにajaxは、行id&textがあり、そこにtextは 3 つの行が入力されていますが、ajax コードには何も表示されません。行にテキストを追加しているときに、即座に更新することはもちろん、何もエコーしません。私は何を間違っていますか?

4

2 に答える 2

1

out.php

<?php
     $conn = new PDO('mysql:host=localhost; dbname=test', 'root', '')

     $stmt = $conn->query("SELECT text FROM ajax");
     echo json_encode($stmt);
?>

test.html

<script>
    var request = new XMLHttpRequest();
    request.open('GET', "http://mysite.com/out.php", false);
    request.onreadystatechange=function()
    {
        if (request.readyState==4 && request.status==200)
        {
             var data = JSON.stringify(request.responseText); //The data from the server will be in responseText
             //data now contains an array of JSON objects of your data
             for(i=0;i<data.length;i++) {
                 console.log(data[i].text);   //.text is a variable based on your MYSQL field
             }
        }
    }
    request.send();
    console.log(request);
</script>

最初に、データを直接出力する php スクリプトを作成し (上記の out.php セクションのように)、次に JavaScript スクリプトを別のページ全体に配置し (test.html セクションのように)、request.open呼び出しを行う必要があります。上記の例の out.phphttp://mysite.com/out.phpへの URL ですが、それを out.php ファイルへの実際の URL に置き換えます。ローカルホストにいるので、次のようになります http://localhost/Portal/Test/out.php

于 2013-05-09T15:11:20.177 に答える
0

まず、foreachループを削除します。次のように変更します。

echo json_encode($stmt);

これにより、AJAXリクエスト変数に、操作する JSON エンコード オブジェクトが与えられます。現在、 AJAX リクエストの結果変数は、コンソール内の結果のみを表示しています。

console.log(request)を次のように変更してみてください:

alert(JSON.stringify(request));
于 2013-05-09T15:02:53.547 に答える