javascript - 使用ajax从php文件获取随机数不会更新新结果

标签 javascript php jquery html ajax

我正在研究我认为可能很简单的事情,即使用 jquery ajax 生成随机数。我有一个index.php,它会轮询generator.php以获取随机数,代码如下

index.php:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
setInterval(function(){
$.ajax({ url:'./generator.php', cache : false, success: function(data){
    document.write(data.foo);
}, dataType: "json"});
}, 3000);   
</script>

生成器.php:

<?php
$x = rand(10,100);
$array = array(
    'foo'  => $x    
);
echo json_encode($array);
?>

所以这在第一次加载时工作正常,它从generator.php获取随机数,但之后index.php继续加载但什么也得不到,显示的数字保持不变。我在这里做错了什么?

最佳答案

我认为问题是document.write(data.foo);。将其替换为:

document.getElementById('anId').innerHTML = data.foo;

并在 html 文档中该脚本之前添加一个 id 为“anId”的元素。

<div id="anId"></div>
<script type="text/javascript">
setInterval(function(){
$.ajax({ url:'./generator.php', cache : false, success: function(data){
    document.getElementById('anId').innerHTML = data.foo;
}, dataType: "json"});
}, 3000);   
</script>

关于javascript - 使用ajax从php文件获取随机数不会更新新结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19210182/

相关文章:

javascript - 引导模态 : Re-enable keyboard and backdrop

javascript - 在 GET Ajax 请求之后,如何打开一个新窗口并呈现 EJS View ?

javascript - 在 Meteor.js 中, stub 的数据库写入是否总是在 stub 完成后立即完成?

javascript - 选择选项值时如何引用页面?

php - Laravel 生成器给出 : Cannot redeclare generatorFunction()

javascript - jQuery + MarkItUp + Polymer - 让它工作?

javascript - 重命名核心 Dojo 包

php - PHP-Elasticsearch不返回所有结果,例如Kibana

jquery - 如何通过Jquery获取页面打开图元数据

jquery - 数据表对象的对象而不是对象的数组