Javascript 谷歌图表错误';不是数组';关于Ajax更新
我有一个简单的谷歌图表,它在初始页面加载时可以很好地呈现以下数据:Javascript 谷歌图表错误';不是数组';关于Ajax更新,javascript,ajax,jsp,Javascript,Ajax,Jsp,我有一个简单的谷歌图表,它在初始页面加载时可以很好地呈现以下数据: [['days','AA','BB'], ['270',15,15],['240',19,19],['210',23,23],['180',31,31],['150',34,34],['120',47,47],['90',57,57],['60',71,71],['30',81,81],['0',94,94]] 当我试图通过Ajax调用刷新它时,它当前返回完全相同的数据,我得到一个错误“不是数组” 这是我正确绘制图表的初始函数
[['days','AA','BB'], ['270',15,15],['240',19,19],['210',23,23],['180',31,31],['150',34,34],['120',47,47],['90',57,57],['60',71,71],['30',81,81],['0',94,94]]
当我试图通过Ajax调用刷新它时,它当前返回完全相同的数据,我得到一个错误“不是数组”
这是我正确绘制图表的初始函数:
<script type="text/javascript">
var chart;
var options;
google.load("visualization", "1.1", {packages:["bar"]});
google.setOnLoadCallback(drawChart);
function drawChart() {
var dataArray = ${initialChartData};
var data = google.visualization.arrayToDataTable(dataArray);
options = {
chart: {
title: 'Bookings by Days Before Holiday Start Date',
subtitle: 'Sales, Expenses, and Profit: 2014-2017',
}
};
chart = new google.charts.Bar(document.getElementById('columnchart_material'));
chart.draw(data, options);
}
</script>
要在初始页面加载时正确更新Ajax响应,需要对上述代码进行哪些更改?只需再次执行此操作:
var chart = new google.visualization.Bar(document.getElementById('columnchart_material'));
chart.draw(data, options);
如果您的数据已经是正确的格式,则无需进行转换,因此您可以使用
chart.draw(responseText,options)
只需在success
handler中调用drawChart()
?如果drawChart()引用初始数据${initialChartData},我看不出这将如何工作。请参阅更新的问题。具体的问题是,我在Ajax响应中得到了一个错误“不是数组”。如果响应已经是DataTable格式,请直接使用它。如果没有数组,arrayToDataTable显然无法工作。
var chart = new google.visualization.Bar(document.getElementById('columnchart_material'));
chart.draw(data, options);