使用 ajax 从 php 文件中获取随机数不会更新新结果
Getting random number from php file using ajax wont update with new result
我正在胡思乱想我认为可能是一件简单的事情,那就是使用 jquery ajax 生成随机数。我有一个索引.php它轮询生成器.php随机数,代码如下
索引.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但在该索引之后.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>
我无法用确切的代码复制您描述的内容。它只是不断将随机数附加到 body 元素。你的HTML是什么样的?
此外,如果您只想要一个介于 10 和 100 之间的随机数,您可以在没有 PHP 的情况下处理这个问题。
这是我想到的:
setInterval(function(){
var random = Math.floor( Math.random() * 90 ) + 10;
$('body').text(function(i,val){
return val + random;
});
}, 3000);
下面是一个演示:
http://jsbin.com/evOtuqA/2/edit
为什么不直接使用 Javascript 来生成一个随机数:
function randomRange(min, max) {
return ~~(Math.random() * (max - min + 1)) + min
}
或者使用:
setInterval.randomnumber()
function randomnumber(){
$.ajax({
dataType: "json",
type: "POST",
url: ('./generator.php'),
success: function(data) {return(data)}
}); }
相关文章:
- 为什么我的文本框没有用查询结果更新
- 如何在一个时间间隔后追加新的更新
- 使用新项目更新KendoUI网格数据源
- 使用新值更新时出现数组问题
- Javascript错误,根据其他复选框的结果更新复选框/按钮
- 使用SimpleHTTPServer响应的结果更新javascript变量的值
- 平均堆栈:如何将函数的结果更新到数据库
- 使用Plotly中的新数据更新图形的高性能方法
- MySQL 按行[id]使用新信息更新“n”行数
- 使用新数据更新 D3 饼图.json
- 对数据库进行 AJAX 编辑时,我是否应该立即使用新数据更新接口
- 尝试从 jQuery 帖子结果更新选择列表选项
- 使用 ajax 从 php 文件中获取随机数不会更新新结果
- 使用从 MongoDB 获取的新数据更新对象属性
- 从 JSON 结果更新 HTML 内容
- 删除新结果输出开头的逗号
- 可以't使用新对象更新localStorage
- 用新值更新JQVMap-map(颜色更改)
- Three.js-Chrome新的更新问题
- Render_template()无法工作,无法用新数据更新页面