我正在尝试使用Google可视化(第一次 - 所以,请耐心等待我)来构建一个简单的柱形图。由于我必须在包括Smarty在内的现有MVC结构中工作,所以事情变得有点复杂 - 但这是由旁边的。
在php中我得到了正确的数据集,我将其传递给了smarty。 Smarty然后格式化谷歌可视化的数据,所以我得到这个(从浏览器“查看源”复制粘贴):
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load('visualization', '1');
google.setOnLoadCallback(drawVisualisation);
function drawVisualisation() {
var wrapper = new google.visualization.ChartWrapper({
chartType: 'ColumnChart',
dataTable: [['', 'android', 'iphone', 'unknown'],['2012-01-24', 2, 1, 2],['2012-01-25', 1, 1, 1]],
options: {'title': 'Periods'},
containerId: 'access-chart'
});
wrapper.draw();
};
</script>
但是,执行时会导致“表没有数据”。
真正奇怪的是,如果我复制这个生成的代码并将其直接粘贴到模板中(不从传递的数据中格式化),那么图表就会正确显示。
这里有什么问题,如何解决?
答案 0 :(得分:0)
显然,我被一个最愚蠢的错误所困扰。这个问题是由一些非常不必要的缓存引起的。当然,我没有在第一次尝试时得到正确的代码,并且在我所有的JS / HTML都正确之前我进行了一些编辑。然而,显然,javascript代码是由浏览器缓存的,当重新加载HTML(php生成的)页面时,javascript没有 - 导致javascript不完整,因此没有图表。解决缓存后,图表不会按预期显示。