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有三个填充的行,但是 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);
?>

测试.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.php 的 url http://mysite.com/out.php,但将其替换为 out.php 文件的实际 url,并且由于您在 localhost 上,因此类似于 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 回答