Php JSON到谷歌图表
我正在尝试使用Php JSON到谷歌图表,php,javascript,jquery,json,google-visualization,Php,Javascript,Jquery,Json,Google Visualization,我正在尝试使用ajax响应表单PHP文件构建google图表。以下是我的javascript {"cols":[{"id":"5","label":"LISTING","type":"number"}],"rows":[{"c":[{"v":"1"}]}]} 当我使用下面的代码构建图形时,我得到一个错误数据表未定义。 function drawBarChartAll(totalclientstatus) { alert(totalclientstatus); /
ajax
响应表单PHP
文件构建google图表。以下是我的javascript
{"cols":[{"id":"5","label":"LISTING","type":"number"}],"rows":[{"c":[{"v":"1"}]}]}
当我使用下面的代码构建图形时,我得到一个错误数据表未定义。
function drawBarChartAll(totalclientstatus) {
alert(totalclientstatus);
//eval ( 'var jsonobject = totalclientstatus;');
//var json = google.visualization.DataTable.toJSON(totalclientstatus)
var data = google.visualization.DataTable(totalclientstatus);
var options = {
'width':670,
'height':310,
hAxis: {title: 'Year', titleTextStyle: {color: 'red'}}
//chartArea:{left:20,top:20,width:"70%",height:"100%"}
};
// Instantiate and draw our chart, passing in some options.
var chart = new google.visualization.ColumnChart(document.getElementById('barchartall'));
chart.draw(data, options);
}
我做错了什么?我正在使用以下php
构建JSON
while ($row = mysqli_fetch_array($agent_result, MYSQL_ASSOC))
{
$columns = array();
$reports['cols'][] = array(id => "{$row['statusid']}"
, label => "{$row['status']}"
, type => "number");
$columns['c'][] = array(v => $row['total']);
$reports['rows'][] = $columns;
}
return json_encode($reports);
ajax
响应是
{"totalclientstatus":"{\"cols\":[{\"id\":\"5\",\"label\":\"LISTING\",\"type\":\"number\"}],\"rows\":[{\"c\":[{\"v\":\"1\"}]}]}"}
我猜你错过了“新的”:
var data=new google.visualization.DataTable(
您使用的是google.setOnLoadCallback
?是的,我使用它来调用ajax,而ajax反过来调用drabarchartall()
你是对的。现在我遇到另一个错误,没有足够的列来绘制请求的图表。
你是用哪种方法来做的?你是在服务器上构建json并在客户端解析并使用google.visualization.DataTable插入它,还是从头构建原始json并使用google.visualizat加载jsonion.DataTable(json);???我发现的问题是php不允许使用相同键的辅助数组(duh!),因此您无法使用json_encode函数构建json字符串并在图表上获得多行。哦,天哪,我找了这个小注释大约3个小时,非常感谢!!!!:D