首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google图表实时更新ajax

Google图表实时更新ajax
EN

Stack Overflow用户
提问于 2013-02-14 20:35:22
回答 1查看 2.8K关注 0票数 2

有没有人知道有没有可能在Google图表中添加实时更新功能?我不想使用按钮来更新数据;相反,我希望图形在数据库数据发生更改时自动更改。这是我用来显示折线图的代码,它工作正常。

index.php

代码语言:javascript
复制
<head>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript" src="jquery-1.9.1.min.js"></script>
    <script type="text/javascript">

google.load('visualization', '1', {'packages':['corechart']});
google.setOnLoadCallback(drawChart);

function drawChart() {
  var jsonData = $.ajax({
      url: "getData.php",
      dataType:"json",
      async: false
      }).responseText;

  var data = new google.visualization.DataTable(jsonData);

  var options = {
      width: '100%',
      height: 500,
      legend: 'none',
      colors: ['orange','red','green'],
      vAxis: {textStyle: {color: 'white'}},
      hAxis: {textStyle: {color: 'white'}}
    };

  var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
  chart.draw(data, options);
}

</script>
</head>

<body>
 <div id="chart_div"></div>
</body>

getData.php我从我的数据库中以以下格式获取数据:

代码语言:javascript
复制
$db_conn_pyr = connect();

function getOrderrader($datum){
 // gets order rows ...
}

$pastDate = date('Ymd', strtotime("-1 month"));

$sqlTrans = "SELECT DISTINCT D3611 FROM PUPROTRA WHERE D3625 = 'U' AND D3601 = 'O' AND
D3611 >= $pastDate ORDER BY D3611 ASC";

$resultTrans = odbc_exec($db_conn_pyr, $sqlTrans)or die(odbc_errormsg());

$data = array(
    'cols' => array(
            array('id' => '', 'label' => 'datum', 'type' => 'string'),
            array('id' => '', 'label' => 'Target', 'type' => 'number'),
            array('id' => '', 'label' => 'Target', 'type' => 'number'),
            array('id' => '', 'label' => 'Orderrader', 'type' => 'number')
    )
);
while($row = odbc_fetch_array($resultTrans)){
$datum = utf8_encode($row['D3611']);
$ordernr = getOrderrader($datum);


$data['rows'][] = array(
    'c' => array(
        array('v' => $datum),
            array('v' => 240),
            array('v' => 160),
            array('v' => $ordernr)
        )
);
}

$string = json_encode($data);
echo $string;

非常感谢琳达

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-14 20:49:58

使用javascript定时器在xxx秒后调用您的图形创建函数,它应该可以为您工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14875019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档