我从ajax填充Google Chart,但只有当ajax的负载足够快时,它才有效。
同样,我需要将我的数据保存为变量,以便稍后在重新调整大小函数和其他数据管理时使用。
我目前正在使用Google图表的教程。
我刚刚添加了一些consoles.log来查看它失败的地方。
<script type="text/javascript">
// Load the Visualization API and the piechart package.
google.charts.load('current', {'packages':['corechart']});
// Set a callback to run when the Google Visualization API is loaded.
//google.charts.setOnLoadCallback(drawChart);
//Mod
function drawChart(dataIN) {
console.log(dataIN);
if(dataIN == undefined){
console.log("opt 1")
console.log(dataIN);
var jsonData = $.ajax({
url: "getData.php",
dataType: "text",
async: false
}).responseText;
}else{
console.log("opt 2");
console.log(dataIN);
}
// Create our data table out of JSON data loaded from server.
console.log("data in process")
var data = new google.visualization.DataTable(dataIN);
// Instantiate and draw our chart, passing in some options.
console.log("drawCart")
var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
chart.draw(data, {width: 400, height: 240});
}
var GAdata = $.ajax({
url: "getData.php",
data: "test",
async: false,
success: function(resultData){
google.setOnLoadCallback(drawChart(resultData));
return resultData;
}
}).responseText;
</script>
最后一个控制台日志是&#34;正在处理的数据&#34;。
有什么想法吗?
答案 0 :(得分:1)
你的setOnLoadCallback倒退了。 setOnLoadCallback表示图表组件已准备就绪,因此您可以通过两种方式解决它:
google.setOnLoadCallback(function() {
$.ajax({
url: "getData.php",
data: "test",
success: function(resultData) {
drawChart(resultData);
return resultData;
}
});
};
或者