我设法通过输出以下字符串来从数据库输出结果:
[['Grupo de edad','Mujeres','Hombres'],['Menos de 40',2,0],['De 40 a 49',7,3],['De 50 a 59',8,5],['De 60 a 69',20,25],['De 70 y más',6,10]]
如果我将此文本准确粘贴到以下内容中:
var data = google.visualization.arrayToDataTable([['Grupo de edad','Mujeres','Hombres'],['Menos de 40',2,0],['De 40 a 49',7,3],['De 50 a 59',8,5],['De 60 a 69',20,25],['De 70 y más',6,10]]);
我可以正确地可视化图表。
但是,如果我使用 jQuery .get() 函数获取数据,然后将数据传递给谷歌可视化函数,如下所示:
google.load("visualization", "1.1", {packages:["corechart","bar"]});
google.setOnLoadCallback(drawVisualization);
function drawVisualization() {
$.get("{{URL::action('ChartController@investigadoresEdadSexo')}}", function(datos, status){
var data = google.visualization.arrayToDataTable(datos);
var options = {
//many options ...
};
var chart = new google.visualization.ComboChart(document.getElementById('chart_div'));
chart.draw(data, options);
});//End of jQuery .get
}
我明白
Not an Array error
我知道我正在传递一个字符串,但如果我通过键入(复制和粘贴)google.visualization.arrayToDataTable() 函数测试该字符串,为什么它不起作用?或者我如何使该函数将该字符串解释为数组?
我该如何解决这个问题?
最佳答案
尝试使用 JSON.parse
将 datos
转换为数组:
var data = google.visualization.arrayToDataTable(JSON.parse(datos));
更新
在解析 datos
引号之前,应将 '
转换为 "
:
datos = datos.replace(/'/g, '"');
var data = google.visualization.arrayToDataTable(JSON.parse(datos));
关于jquery - 错误: Not an array in Google charts,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29500787/