这是我的代码,我花了几个小时谷歌搜索这个没有成功......
google.load('visualization', '1', {packages: ['corechart']});
google.setOnLoadCallback(drawVisualization);
function drawVisualization(){
var jsonData = $.ajax({
url: "FinancialData.php",
// data: "ChartRequest=" + "Employees",
dataType:"json",
async: false,
}).responseText;
window.alert(jsonData); //this always returns correctly formatted data
var data = new google.visualization.DataTable(jsonData); //this never works
var chart = new google.visualization.PieChart(document.getElementById('visualization'));
chart.draw(data, {title:"Progress Fest Financial Information, Fall 2013"});
};
代码返回“表没有列”
答案 0 :(得分:1)
responseText
是作为字符串的响应,不是由JSON解析为Javascript对象。 jQuery将解析后的结果传递给AJAX完成函数,但是你没有使用它,所以你没有得到它。您需要明确调用$.parseJSON
:
var jsonData = $.parseJSON($.ajax({
...
}).responseText);
或者您可以使用完成功能(因此您不需要使用async: false
):
$.ajax({
...
}).done(function(jsonData) {
window.alert(jsonData);
var data = new google.visualization.DataTable(jsonData);
var chart = new google.visualization.PieChart(document.getElementById('visualization'));
chart.draw(data, {title:"Progress Fest Financial Information, Fall 2013"});
});