假設我有一個<select>
下拉菜單位置:如何在點擊<select>下拉菜單上的選項時繪製Google圖表?
<select id="menu">
<option>livejournal</option>
<option>librarybooks</option>
<option>sunspots</option>
</select>
我試圖將其鏈接到谷歌圖API,所以當我點擊選項菜單中,將繪製相應的圖表(以取代現有的一個)在頁面上。
我使用object.onchange
來實現這一點,但似乎chart.draw
不會能畫一個圖表,還有什麼我錯過了?
//Dropdown Menu Selection
document.getElementById("menu").onchange = function() {
//livejournal
if(this.selectedIndex == 0){
alert("Default");
}
//librarybooks
if(this.selectedIndex == 1){
alert("librarybooks");
var data = google.visualization.arrayToDataTable([
['Digit', 'Benford', 'Librarybooks'],
['1', 1000, 200],
['2', 1170, 760],
['3', 660, 100],
['4', 1030, 300],
['5', 1030, 140],
['6', 1030, 640],
['7', 1030, 240],
['8', 1030, 440],
['9', 1030, 840]
]);;
chart.draw(data, google.charts.Bar.convertOptions(options));
}
//sunspots
if(this.selectedIndex == 2){
alert("Sunspots");
}
}
這是我使用原來的API:
google.charts.load('current', {'packages':['bar']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Year', 'Sales', 'Expenses', 'Profit'],
['2014', 1000, 400, 200],
['2015', 1170, 460, 250],
['2016', 660, 1120, 300],
['2017', 1030, 540, 350]
]);
var options = {
chart: {
title: 'Company Performance',
subtitle: 'Sales, Expenses, and Profit: 2014-2017',
}
};
var chart = new google.charts.Bar(document.getElementById('columnchart_material'));
chart.draw(data, google.charts.Bar.convertOptions(options));
}
<html>
<head>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript"></script>
</head>
<body>
<div id="columnchart_material" style="width: 800px; height: 500px;"></div>
</body>
</html>