Hi All,

Trying to get user input to update a chart.
I am working with the Visualisation API from non-programming
background and have run into difficulty trying to pass user input to
update a chart.

Please see the code below I have pulled together from code snippets
and changed for my use... it all works except for the updating part
which I'm sure I have not structured well.  Would welcome comments as
to how to fix.

Thanks... Tony.

                // Set the default view on chart when page opens to previous
month.... if current month is November we want to look at October.
                // Because of column position in dataTable we have to add 2 to 
get
current month therefore it's +1 to get last month.
                // "2" is required in the array as column "2" displays the
horizontal axix titles
                var currentdate = new Date();
                var currentmonth = currentdate.getMonth()+1;
                var x=[2, currentmonth];


                // Create global variable to take input from Input Selection box
"query-1".
                // This should then be passed to "x" and the chart redrawn with 
new
parameters.
                var userchange;


          function drawVisualization() {
        // Get data from Google Docs Spreadsheet and place in variable
called "query"
          var query = new google.visualization.Query(
            'https://docs.google.com/spreadsheet/ccc?
key=0Au7Q9U_2LFbMdFk4UUNRbUFwTWh6VXIyMDJJTE1NalE&#gid=0&range=A1:O50000');


            // Send query to function handleQueryResponse to check it is
valid data
        query.send(handleQueryResponse);
      }


      // if error then error message is displayed else valid query
      function handleQueryResponse(response) {
        if (response.isError()) {
          alert('Error in query: ' + response.getMessage() + ' ' +
response.getDetailedMessage());
          return;
        }

            // convert response to DataTable and place in var data
        var data = response.getDataTable();


            // set up a function called setValue to set the value of "x" in
ChartWrapper
                // and call draw(data) to redraw Dashboard with new parameters
                function setValue(thisValue) {
                x.value=thisValue;
                draw(data);

                }



        // Define the category picker control for the Year column
        var categoryPicker2 = new
google.visualization.ControlWrapper({
          'controlType': 'CategoryFilter',
          'containerId': 'control2',
          'options': {
            'filterColumnLabel': 'Year',
            'ui': {
            'labelStacking': 'vertical',
              'allowTyping': false,
              'allowMultiple': false
            }
          },
                  //set the onLoad state for the Catergory Picker button
                   'state': {'selectedValues': ['2011']}
        });



        // Define the Column chart
        var mychart = new google.visualization.ChartWrapper({
          'chartType': 'ColumnChart',
          'containerId': 'chart1',
          'options': {
            'width': 800,
            'height': 500,
                        'isStacked': 'true',
                        'legend': 'right',
                        'hAxis': {
                                'textStyle': {'fontSize': 12},
                                'textPosition': 'out',
                                'slantedText': 'true',
                                'slantedTextAngle': 40},
            'title': 'EMEA - % change month',
          },
          // Instruct the chart on what columns to use for display
          // from the data in DataTable.
          'view': {'columns': x}
        });


        // Define the Data Table to display
                  var table = new google.visualization.ChartWrapper({
          'chartType': 'Table',
          'containerId': 'chart2',
                  'view': {'columns': [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 
14]},
                  'options': {
                  'width': 1220}
        });


        // Create the dashboard
        new
google.visualization.Dashboard(document.getElementById('dashboard')).

            // Establish bindings, declaring the category picker will
drive both the chart and the table
            bind([categoryPicker2], [mychart, table]).

            // Draw the entire dashboard.
            draw(data);
      }


      google.setOnLoadCallback(drawVisualization);
    </script>
  </head>


<body style="font-family: Arial;border: 0 none;">

<div id="navigation">
  <table width="600" border="0" cellpadding="0" cellspacing="0">
    <tr style='height: 28px;'>
      <td onMouseOver="this.bgColor='#2AABDF'"
onMouseOut="this.bgColor=''" width="150px" align="center"><a
href="Home.htm" style="color: #FFBF23"><b>Home</b></a></td>
      <td onMouseOver="this.bgColor='#2AABDF'"
onMouseOut="this.bgColor=''" width="150px" align="center"><a
href="Sites.htm">Sites</a></td>
      <td onMouseOver="this.bgColor='#2AABDF'"
onMouseOut="this.bgColor=''" width="150px" align="center"><a
href="Categories.htm">Categories</a></td>
      <td onMouseOver="this.bgColor='#2AABDF'"
onMouseOut="this.bgColor=''" width="150px" align="center"><a
href="Expense.htm">Expense</a></td>
    </tr>
  </table>
</div>

<div id="dashboard">
      <table border="1" width="1230" cellpadding="0" cellspacing="0">
          <tr style='vertical-align: top'>
            <td style='width: 410px;'>
              <div id="control1"></div>
              <div id="control2"></div>
                          <p></p>
                          <div id="test">
                                <table border="0" style="font-size: 12px; ">
                                        <tr>
                                        <td>Choose Period for Review</td>
                                                <!-- create an input selection 
box called "query-1" and onchange
set the value of "x" = selection//-->
                                        <td><select id='query-1' 
onchange='setValue(this.value)'>
                                                <option value=''>None</option>
                                                        <option value='[2, 
3]'>January</option>
                                                <option value='[2, 
4]'>February</option>
                                                <option value='[2, 
5]'>March</option>
                                                <option value='[2, 3, 4, 
5]'>Q1</option>
                                                <option value='[2, 
6]'>April</option>
                                                        <option value='[2, 
7]'>May</option>
                                                        <option value='[2, 
8]'>June</option>
                                                        <option value='[2, 6, 
7, 8]'>Q2</option>
                                                        <option value='[2, 
9]'>July</option>
                                                        <option value='[2, 
10]'>August</option>
                                                        <option value='[2, 
11]'>September</option>
                                                        <option value='[2, 9, 
10, 11]'>Q3</option>
                                                        <option value='[2, 
12]'>October</option>
                                                        <option value='[2, 
13]'>November</option>
                                                        <option value='[2, 
14]'>December</option>
                                                        <option value='[2, 12, 
13, 14]'>Q2</option>
                                        </select></td>
                                        </tr>
                                </table>
                          </div>
            </td>
            <td style='width: 820px;'>
              <div style="float: right;" id="chart1"></div>
            </td>
          </tr>
          </table>
</div>

<div class="header" id="text">Overall Activity - EMEA</div>

<div id="chart_holder">
<table width="1230" border="1" cellpadding="0" cellspacing="0">
<tr>
<td>
<div id="chart2"></div>
</td></tr>
</table>
</div>

-- 
You received this message because you are subscribed to the Google Groups 
"Google Visualization API" group.
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