我正在努力寻找如何通过 ajax 让多个仪表"自动更新"的解决方案。 我希望会出现 3 个仪表(仪表 1、仪表 2 和仪表 3(,根据文档,每个仪表都是具有单个数值的列。 我已经从这个网站看过PHP MySQL Google Chart JSON - 完整示例,并阅读了谷歌文档,但没有一个真正帮助我解决这里发生的事情。 我没有在数据变量中获取任何内容,并且除了"数据表未设置"之外,我没有收到任何错误消息。 代码如下:
google.charts.load('current', {'packages':['gauge']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data;
var options = {
width: 600,
height: 190,
redFrom: 7,
redTo: 10,
greenFrom: 0,
greenTo: 5,
yellowFrom: 5,
yellowTo: 7,
minorTicks: 0,
min: 0,
max: 10,
majorTicks: ["",""],
animation: {
duration: 100
}
};
var chart = new google.visualization.Gauge(document.getElementById('gaugediv'));
function refreshData () {
//alert("refreshing");
var json = $.ajax({
url: 'data.php',
dataType: 'json',
async: false
}).responseText;
alert(json); //shows good data
data = google.visualization.DataTable(json);
alert("did I make it here?"); // nope. Doesn't alert.
chart.draw(data, options);
//setInterval(refreshData, 3000);
}
refreshData();
//setInterval(refreshData, 3000);
}
这是我从数据中得到的.php
{
cols: [{id: 'A', label: 'Gauge1', type: 'number'},
{id: 'B', label: 'Gauge2', type: 'number'},
{id: 'C', label: 'Gauge3', type: 'number'}
],
rows: [{c:[{v: '8'},
{v: '6'},
{v: '4'}
]}
]
}";
任何帮助将不胜感激。
尝试
创建DataTable
时缺少new
关键字其他一切看起来都不错...
data = new google.visualization.DataTable(json);
google.charts.load('current', {
packages: ['gauge'],
callback: drawChart
});
function drawChart() {
var json = {
cols: [
{id: 'A', label: 'Gauge1', type: 'number'},
{id: 'B', label: 'Gauge2', type: 'number'},
{id: 'C', label: 'Gauge3', type: 'number'}
],
rows: [
{c:[
{v: '8'},
{v: '6'},
{v: '4'}
]}
]
};
// be sure to use the 'new' keyword here...
var data = new google.visualization.DataTable(json);
var chart = new google.visualization.Gauge(document.getElementById('gaugediv'));
var options = {
width: 600,
height: 190,
redFrom: 7,
redTo: 10,
greenFrom: 0,
greenTo: 5,
yellowFrom: 5,
yellowTo: 7,
minorTicks: 0,
min: 0,
max: 10,
majorTicks: ["",""],
animation: {
duration: 100
}
};
chart.draw(data, options);
}
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="gaugediv"></div>