谷歌图表与PHP的ajax请求

时间:2016-02-17 10:34:36

标签: php json ajax

我对谷歌图表有点问题,我的array.php json数据输出如下

var jsondata = {"cols":[{"id":"","label":"Topping","type":"string"},{"id":"","label":"Slices","type":"number"}],"rows":[{"c":[{"v":"MAX"},{"v":150}]},{"c":[{"v":"MAX1"},{"v":59}]},{"c":[{"v":"MAX2"},{"v":15}]},{"c":[{"v":"MAX3"},{"v":153}]},{"c":[{"v":"MAX4"},{"v":8}]},{"c":[{"v":"MAX5"},{"v":25}]},{"c":[{"v":"MAX6"},{"v":65}]}]}

这与谷歌图表工作正常

var data = new google.visualization.DataTable(jsond);

var chart = new 
google.visualization.PieChart(document.getElementById('piechart'));

chart.draw(data, options);

When i call trough the ajax i am getting error saying invalid json.

var jsonData = $.ajax({
              url: "array.php",
              dataType:"json",
              async: false
              }).responseText;

var data = new google.visualization.DataTable(jsonData);

var chart = new 
google.visualization.PieChart(document.getElementById('piechart'));

chart.draw(data, options);

有人解释了这一点。

2 个答案:

答案 0 :(得分:1)

jsonData是一个字符串(responseText) 将其解析为json

jQuery.parseJSON(jsonData)

答案 1 :(得分:0)

我不知道您的PHP代码输出了什么,但请确保您的php echo语句中有 json_encode($ array);

除此之外,使用Google Chrome开发者控制台记录来自您的AJAX请求的json数据,看它是否与 jsondata 变量中的json匹配,并相应地更改输出格式。

有时,您可能会错误地添加/不添加方括号[]。 照顾好这一点。

此外,如果您的PHP正在生成数组,请确保其结构与所需的结构相匹配。 (有时我们会犯愚蠢的错误)