The first problem is that your switch statement is outside the change 
function, so it tries the switch on the document's ready event rather than 
on the selection change.  A possible second problem is that the API may not 
be done loading when the change is made.  To prevent this, move the 
switching code from a document.ready event handler to the 
google.setOnLoadCallback handler.  Make those changes and it should work 
fine: http://jsfiddle.net/asgallant/3sXYY/

On Thursday, October 25, 2012 6:31:06 AM UTC-4, RaviShankar Radhakrishnan 
wrote:
>
> Hi All . I am pretty new to google Visualisation API. I have a scenario to 
> load different charts based on a selection from the dropdown. It is not 
> displaying if I am adding two draw functions. Please help me. Thanks so 
> much.
>
> HTML Code:
>
> <html>
> <head>
> <script src="http://www.google.com/jsapi"; type="text/javascript"></script>
>     <script src="../js/jquery-1.8.2.min.js" type="text/javascript" 
> ></script>
>     <script src="../js/bootstrap.min.js" type="text/javascript" ></script>
> <script src="../js/components/dashboard.js" 
> type="text/javascript"></script>
> </head>
> <body>
>
> <div id="dashboard-content" class="content">
>     <select id="dashboard-chart-type">
>         <option value="average" selected="selected">Average 
> Installs</option>
>         <option value="total_install">Total Install</option>
>         <option value="total_uninstall">Total Uninstall</option>
>     </select>
>     <div id="visualization" style="width: 600px; height: 400px;"></div>
>     
> </div>
>
>
> </body>
>
>
>
> </html>
>
> *Javascript Code: **/js/components/dashboard.js*
>
>
>
> $(document).ready(function(){
>   $('#dashboard-chart-type').change(function(){
>       var selectedVal = $(this).val();
>       alert(selectedVal);
>   });
>    switch(selectedVal) {
>
>         case "average":
>             alert("average");
>             $('#visualization').empty();
>             init();
>             break;
>         case "total_install":
>             alert("installs");
>             $('#visualization').empty();
>             init2();
>             break;
>         case "total_uninstall":
>             alert("uninstalls");
>             $('#visualization').empty();
>             init();
>             break;
>         default:
>             alert("default");
>             $('#visualization').empty();
>             init2();
>             break;
>     }
>
>
> });
>
> function init(){
>     drawColumnComboChart();
>
> }
> function init2(){
>     drawStackedChart();
> }
>
> google.load('visualization', '1', {packages: ['corechart']});
>
> function drawColumnComboChart() {
>     // Create and populate the data table.
>     var data = google.visualization.arrayToDataTable([
>         ['Month', 'USA', 'UK', 'Germany', 'India', 'China', 'Average'],
>         ['2012/05',  165,      938,         522,             998,         
>   450,      614.6],
>         ['2012/06',  135,      1120,        599,             1268,         
>  288,      682],
>         ['2012/07',  157,      1167,        587,             807,         
>   397,      623],
>         ['2012/08',  139,      1110,        615,             968,         
>   215,      609.4],
>         ['2012/09',  136,      691,         629,             1026,         
>  366,      569.6]
>     ]);
>
>     // Create and draw the visualization.
>     var ac = new 
> google.visualization.ComboChart(document.getElementById('visualization'));
>     ac.draw(data, {
>         title : 'Average Installs this year',
>         width: 600,
>         height: 400,
>         vAxis: {title: "Number"},
>         hAxis: {title: "Month"},
>         seriesType: "bars",
>         series: {5: {type: "line"}}
>     });
> }
>
> function drawStackedChart() {
>     // Some raw data (not necessarily accurate)
>     var data = google.visualization.arrayToDataTable([
>         ['Month',   'Bolivia', 'Ecuador', 'Madagascar', 'Papua New 
> Guinea', 'Rwanda'],
>         ['2004/05',    165,      938,         522,             998,       
>     450],
>         ['2005/06',    135,      1120,        599,             1268,       
>    288],
>         ['2006/07',    157,      1167,        587,             807,       
>     397],
>         ['2007/08',    139,      1110,        615,             968,       
>     215],
>         ['2008/09',    136,      691,         629,             1026,       
>    366]
>     ]);
>
>     // Create and draw the visualization.
>     var ac = new 
> google.visualization.AreaChart(document.getElementById('visualization'));
>     ac.draw(data, {
>         title : 'Monthly Coffee Production by Country',
>         isStacked: true,
>         width: 600,
>         height: 400,
>         vAxis: {title: "Cups"},
>         hAxis: {title: "Month"}
>     });
> }
>
>
>
>
>
>
>
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google Visualization API" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-visualization-api/-/e5IwOyXl2DUJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-visualization-api?hl=en.

Reply via email to