我正在制作一个网络应用,并想要绘制一个每5秒更新一次值的图表。我尝试创建一个全局值,但它不起作用,因为它首先绘制图表,然后从我的ajax调用中获取数据。
overview_p.php:
$(document).ready(function(){
getChartInfo();
});
setInterval(function(){ getChartInfo() }, 5000);
function getChartInfo()
{
$.ajax({
type: 'post',
url: 'php/classes/dash/overview_c.php',
data: "type=stat1&user_id=<?php echo $_SESSION['user_id'];?>",
dataType: 'json',
success: function(responseStat1){
var statHour1 = 0;
$.each(responseStat1, function(index){
statHour1 += responseStat1[index].hours;
});
$('.statHour1').html(statHour1 + ' uur');
},
error: function(error){
console.log(error);
}
})
}
overview_c.php:
<?php
class Overview{
public function getStat1(){
$json_getStat1[] = array('hours' => '2');
}
print json_encode($json_getStat1);
}
}
}
$overview = new Overview();
switch($_POST['type']){
case 'stat1':
$overview->getStat1();
break;
}
?>
答案 0 :(得分:0)
你应该在成功函数中绘制你的图表,ajax调用本质上是异步的,所以唯一的另一种选择是使用async:false进行调用,这是一个非常糟糕的主意(你的ui将被冻结,直到服务器响应)。 同时给我们一些我们可以合作的东西以获得更好的答案,从你所呈现的内容中可以理解的不多