Google визуализация - ChartWrapper - таблица не имеет столбцов - PullRequest
0 голосов
/ 25 января 2012

Я пытаюсь использовать визуализацию Google (впервые - так что, пожалуйста, потерпите меня), чтобы построить простую столбчатую диаграмму. Все усложняется тем, что мне приходится работать в существующей структуре MVC, включая Smarty, - но это пока что.

В php я получаю правильный набор данных, которые я передаю smarty. Затем Smarty форматирует данные для визуализации в Google, поэтому я получаю это (скопируйте и вставьте из браузера «просмотр источника»):

<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>

Однако при выполнении это приводит к «Таблице нет данных».

Что действительно странно, так это то, что если я скопирую этот сгенерированный код и вставлю его непосредственно в шаблон (без форматирования из переданных данных), тогда диаграмма будет показана правильно.

В чем может быть проблема здесь и как я могу это исправить?

1 Ответ

0 голосов
/ 24 февраля 2012

Видимо, меня застала одна из самых глупых ошибок.Проблема была вызвана очень нежелательным кэшированием.Естественно, я не получил правильный код с первой попытки, и мне потребовалось несколько изменений, пока все JS / HTML не были правильными.Тем не менее, по-видимому, код javascript был кэширован браузером, и когда страница HTML (сгенерированная php) была перезагружена, javascript - нет, что привело к неполному JavaScript и, следовательно, к отсутствию диаграммы.Как только кэширование разрешено, график не отображается должным образом.

...