Google Chart Click Event

by Joviano Dias

HTML

<script type="text/javascript" src="https://www.google.com/jsapi"></script>
  <div id="chart_div"></div>

JavaScript

google.load("visualization", "1.1", {packages:["bar"]});
      google.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',
          },
          bars: 'horizontal' // Required for Material Bar Charts.
        };

        var chart = new google.charts.Bar(document.getElementById('chart_div'));

        chart.draw(data, options);
          
google.visualization.events.addListener(chart, 'select', selectHandler);

function selectHandler() {
var selection = chart.getSelection();
var message = '';
for (var i = 0; i < selection.length; i++) {
var item = selection[i];
if (item.row != null && item.column != null) {
var str = data.getFormattedValue(item.row, item.column);
var category = data
.getValue(chart.getSelection()[0].row, 0)
var type
if (item.column == 1) {
type = "sale";
} else if(item.column == 2){
type = "Expense";
}else{
type = "Profit";
}
message += '{row:' + item.row + ',column:' + item.column
+ '} = ' + str + '  The Category is:' + category
+ ' it belongs to : ' + type + '\n';
} else if (item.row != null) {
var str = data.getFormattedValue(item.row, 0);
message += '{row:' + item.row
+ ', column:none}; value (col 0) = ' + str
+ '  The Category is:' + category + '\n';
} else if (item.column != null) {
var str = data.getFormattedValue(0, item.column);
message += '{row:none, column:' + item.column
+ '}; value (row 0) = ' + str
+ '  The Category is:' + category + '\n';
}
}
if (message == '') {
message = 'nothing';
}
alert('You selected ' + message);

}
}