Я пытаюсь использовать визуализацию Google (впервые - так, пожалуйста, несите меня), чтобы построить простую диаграмму столбцов. Дела обстоят немного сложнее из-за того, что я должен работать в рамках существующей структуры MVC, включая Smarty, но это все-таки.Визуализация Google - ChartWrapper - таблица не имеет столбцов
В 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>
Однако при выполнении, это приводит к «Таблица не имеет никаких данных».
Что действительно странно в том, что если я скопирую этот сгенерированный код и вставляю его непосредственно в шаблон (без форматирования его из переданных данных), диаграмма будет показана правильно.
Что может быть проблемой здесь и как ее исправить?
Это должно работать. Если при запуске консоли открывается, вы видите какие-либо другие ошибки js, которые могут привести к тому, что это не будет вызвано? Является ли «диаграмма доступа» определенным идентификатором элемента на вашей странице, которая существует перед обратным вызовом drawVisualization? Можете ли вы вставить весь источник страницы? – oli
Других ошибок нет - просто «Таблица не имеет данных». Элемент «accesss-chart» существует, я получаю текст «белый-на-красном» «Таблица не содержит данных» внутри него. Вся страница слишком велика (более 500 строк кода html/js) - диаграмма - лишь малая ее часть. –
Если вы скопируете весь источник на новую страницу html и запустите это, рисуется ли диаграмма? Если это не так, то в этой статье есть что-то еще. Если это так, то во время процесса рендеринга происходит что-то. – oli