Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
795 views
in Technique[技术] by (71.8m points)

javascript - Google Chart - uncaught error: not an array

I have a php script that generates the google chart data and returns it in json encoded format. It's loaded into google chart using jQuery $.get() method. When I pass the return data to the google "arrayToDataTable" function like this:

var googleChartData = google.visualization.arrayToDataTable(chartData);

I get this error:

enter image description here

So, what I did was I dumped the value of my variable "chartData" and I got the following:

enter image description here

So, what I did was, copy this data from console window into the "arrayToDataTable" function manually like this:

var googleChartData = google.visualization.arrayToDataTable([["Date Range","0001/102/0 Available","0001/102/0 Unavailable","0001/102/1 Available","0001/102/1 Unavailable"],["02/10/2013",0,1,110,11],["03/10/2013",0,1,189,11],["04/10/2013",0,1,189,11],["06/10/2013",0,1,189,10],["07/10/2013",0,1,187,10],["08/10/2013",186,11,0,1],["09/10/2013",186,11,0,1],["10/10/2013",0,1,186,11],["11/10/2013",0,1,204,11],["13/10/2013",0,1,204,11]]);

Now the chart renders (as expected, because the returned data from my php script is correct):

enter image description here

This is a bit bizarre; does any one know why the chart doesn't work when it's loaded from the variable?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I've solved it by changing arrayToDataTable line like this:

var googleChartData = google.visualization.arrayToDataTable($.parseJSON(chartData));

Thanks to this post: https://stackoverflow.com/a/9420583/2332336


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...