Javascript 使用setInterval和jQuery加载在JS数组中加载PHP

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("

下面的代码使用flot图表显示饼图。它工作得很好,但是我需要使用PHP动态地放置生成的数据(abcdata),然后使用setInterval每隔5秒刷新一次数据。数据未显示在index.php中,饼图消失。我相信这与通过jQuery加载var abdata变量有关,但我不确定如何解决它

我的目的是通过PHP加载数据(abdata),并每隔几秒钟刷新一次数据

// 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来使用每个元素。