Javascript 使用setInterval和jQuery加载在JS数组中加载PHP
下面的代码使用flot图表显示饼图。它工作得很好,但是我需要使用PHP动态地放置生成的数据(abcdata),然后使用setInterval每隔5秒刷新一次数据。数据未显示在index.php中,饼图消失。我相信这与通过jQuery加载var abdata变量有关,但我不确定如何解决它 我的目的是通过PHP加载数据(abdata),并每隔几秒钟刷新一次数据Javascript 使用setInterval和jQuery加载在JS数组中加载PHP,javascript,php,jquery,setinterval,flot,Javascript,Php,Jquery,Setinterval,Flot,下面的代码使用flot图表显示饼图。它工作得很好,但是我需要使用PHP动态地放置生成的数据(abcdata),然后使用setInterval每隔5秒刷新一次数据。数据未显示在index.php中,饼图消失。我相信这与通过jQuery加载var abdata变量有关,但我不确定如何解决它 我的目的是通过PHP加载数据(abdata),并每隔几秒钟刷新一次数据 // Code in index.php setInterval(function() { $(".test").load("
// Code in index.php
setInterval(function() {
$(".test").load("test.php");
}, 1000);
// Code in the test.php file:
var abdata = [
{ label: "B", data: 90}, // The data values are queried using PHP and SQL
{ label: "C", data: 112},
{ label: "A", data: 112}
];
if($("#chart").length)
{
$.plot($("#chart"), abdata,
{
series: {
pie: {
innerRadius: 0.5,
show: true
}
},
legend: {
show: false
},
colors: ["#f29020","#434343", "#3fbed3"]
});
}
如果有人能帮忙,我将不胜感激!提前谢谢 您可以使用ajax()将abdata值返回为json,然后使用该值,而不是使用load()加载数据
// Code in index.php
setInterval(function() {
$.ajax({
type:"GET",
url:"test.php",
success:function(response) {
var abdata = $.parseJSON(response);
if($("#chart").length)
{
$.plot($("#chart"), abdata,
{
series: {
pie: {
innerRadius: 0.5,
show: true
}
},
legend: {
show: false
},
colors: ["#f29020","#434343", "#3fbed3"]
});
}
}
});
}, 1000);
// Code in the test.php file:
$abdata = array(
array( 'label'=> "B", 'data'=> 90), // The data values are queried using PHP and SQL
array( 'label'=> "C", 'data'=> 112),
array( 'label'=> "A", 'data'=> 112)
);
echo json_encode($abdata);
哇,非常感谢@karan!成功了!请问您如何在一页中管理多个饼图?我需要为每个图表单独调用ajax吗?谢谢您可以将每个图表的数据作为元素添加到php数组中,如
0=>firstchart,1=>secondchart
,然后通过循环接收到的JSON来使用每个元素。