Ваш вопрос затрагивает кое-что, что меня сильно расстроило: документация Google API не велика! В частности, для API диаграмм, в основном во всех их примерах, данные для их диаграммы жестко запрограммированы на странице, и в реальной жизни вы в основном всегда будете отображать данные, хранящиеся в БД и передаваемые в браузер.
1) Вам нужен некоторый код на сервере (я использую PHP), который запрашивает базу данных, «печатает» и передает структуру данных JSON / complex, которая представляет собой объект, в котором свойства являются массивами, которые содержат дополнительные объекты со свойствами и значениями. в точном формате, который Google Chart JavaScript ожидает получить в браузере. Я сделал это так:
$sql = "SELECT year,d_pop FROM metrics WHERE year IN ('1940','1950','1960','1970','1980')";
$sth = mysql_query($sql, $conn) or die(mysql_error());
//start the json data in the format Google Chart js/API expects to recieve it
$JSONdata = "{
\"cols\": [
{\"label\":\"Year\",\"type\":\"string\"},
{\"label\":\"Detroit Population\",\"type\":\"number\"}
],
\"rows\": [";
//loop through the db query result set and put into the chart cell values
while($r = mysql_fetch_assoc($sth)) {
$JSONdata .= "{\"c\":[{\"v\": " . $r['year'] . "}, {\"v\": " . $r['d_pop'] ."}]},";
}
//end the json data/object literal with the correct syntax
$JSONdata .= "]}";
echo $JSONdata;
2) Вам нужно получить этот объект JSON в вашем JavaScript на своей странице и передать его в Google Chart JS. Я ввел JQuery, а затем использовал его метод AJAX так:
function drawChart() {
var jsonData = $.ajax({
url: "index_db.php",
dataType:"json",
async: false
}).responseText;
// Create our data table out of JSON data loaded from server.
var data = new google.visualization.DataTable(jsonData);
// Instantiate and draw our chart, passing in some options.
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
chart.draw(data, {vAxis: {minValue: 0}});
}
Фрагменты моего кода фокусируются на ключевых частях запросов к базе данных mySQL, генерации объекта JSON, который нужен API Google Charts, и получения его с помощью JQuery и AJAX. Надеюсь, что это освещает!