我正在使用一个ajax函数来获取渲染Google Pie图表的数据,并将这些数据加载到javascript中,但是一些饼图是如何不渲染的,但当我将AJAX输出硬编码到javascript饼图函数中时,它可以完美地渲染。下面是我的代码,有人能告诉我出了什么问题吗?谢谢你的帮助。
<?php
$sales_data = koolajax.callback(get_asin_repo($asin,$sku));
?>
JS在这里:
// AJAX Output is ['POS', 'Sold This Month'],['AZN CG UK',893],['AZN JT UK',449],['AZN PT UK',1349]
alert($sales_data);
//var data = google.visualization.arrayToDataTable([$sales_data]);//This doesn't work
//This Works
var data = google.visualization.arrayToDataTable([['POS', 'Sold This Month'],['AZN CG UK',893],['AZN JT UK',449],['AZN PT UK',1349]]);
var options = {
title: 'Statistics For '+$asin
};
var chart = new google.visualization.PieChart(document.getElementById('chart_div1'));
chart.draw(data, options);
发布于 2012-08-06 12:24:44
这真的很简单。我所需要做的就是从DB获取JSON格式的数据并传递给它
var data = new google.visualization.DataTable($sales_data);
函数而不是
var data = google.visualization.arrayToDataTable([$sales_data])
而且它是有效的。感谢所有人的支持和宝贵的时间.
发布于 2012-08-04 23:25:48
您必须检查从服务器返回的变量类型,并将其打包为GoogleChart能够理解的方式。
在本例中,您请求google.visualization.arrayToDataTable为您创建一个DataSource实例。但该静态方法还要求遵循以下规则:
此方法接受二维数组并将其转换为DataTable。请参阅Google Charts Documentation
因此,请在调用该例程之前进行检查。
if ( $sales_data instanceof Array )
{
var willWork = [];
var entry;
while ( $sales_data.length )
{
entry = $sales_data.shift();
if ( !(entry instanceof Array) || entry.length < 2 )
window.alert( 'Incorrect server return. Call support.' );
willWork.push( entry );
}
}
else
window.alert( 'Incorrect server return. Call support.' );
发布于 2017-05-18 07:56:57
Google饼图从PHP获取数据
我已经搜索了4个小时如何从PHP填充数据到google饼图,但没有找到任何解决方案,实际上,我的数据格式在PHP中是错误的。您可以使用以下方式在PHP中准备数据:
function yourFunction(){
$data = array();
$data[0] = array("Status", "Revenue");
$data[1] = array('Pending', 500);
$data[2] = array('Confirmed', 1000);
$data[3] = array('Payable', 3000);
return json_encode($data );
}
前端解析数据:
var obj = JSON.parse(data);
var data = new google.visualization.arrayToDataTable(data);
https://stackoverflow.com/questions/11797062
复制