从函数中获取JSON数据,为Chart JS赋值

时间:2016-08-07 15:17:40

标签: javascript php chart.js

我正在制作一个网络应用,并想要绘制一个每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;
    }
    ?>

1 个答案:

答案 0 :(得分:0)

你应该在成功函数中绘制你的图表,ajax调用本质上是异步的,所以唯一的另一种选择是使用async:false进行调用,这是一个非常糟糕的主意(你的ui将被冻结,直到服务器响应)。 同时给我们一些我们可以合作的东西以获得更好的答案,从你所呈现的内容中可以理解的不多