scott5616
unread,Jul 4, 2011, 6:39:38 PM7/4/11Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to Google Visualization API
Hi all,
I am in the process of building a dashboard using google visualization
and jquery. So far, the dashboard has a collection of the tables that
contains data from a external database. Now, I would like to use the
data from an existing table to create a google bar chart using
specified values obtained from filtering the table, etc...
I have the main table loading at this stage, and have defined a
function to create the chart, but there is a problem with the load
order in that the table takes longer to render than it takes for the
parse to reach the code to draw the chart; when adding an alert
function call I notice the chart is rendered correctly.
Looking around the net, I am unable to see how load ordering could be
implemented. If anyone has experience then please let me know - code
example below:
$(function(tableData){
$.getJSON('src/getDefects.php', {r: $_POST['q'], p: $_POST['p']},
function(reldata) {
var data = new google.visualization.DataTable();
data.addRows(reldata.length);
data.addColumn('string','DatabaseID');
data.addColumn('string','Synopsis');
data.addColumn('string','Target Release');
data.addColumn('string','State');
$.each(reldata, function(k, val){
data.setCell(k, 0, val.dbid);
data.setCell(k, 1, val.synopsis);
data.setCell(k, 2, val.target_rel);
data.setCell(k, 3, val.state);
});
var options =
{'showRowNumber':false ,'allowHtml':true ,sortColumn:
1 ,sortAscending:false
,page:'enable' ,width:'100%' ,pagingSymbols:
{next:'next' ,prev:'prev'}};
var v = new google.visualization.DataView(data);
v.setColumns([1,2,3,4,5]);
// get distinct values from view list.
states = v.getDistinctValues(4);
//itterate through unique states and push on to the array.
$.each(states, function(k, val){
cols.push(val);
rows.push(v.getFilteredRows([{column: 4, value:
val}]).length);
});
if(v.getNumberOfRows() > 0){
var tableData = new
google.visualization.Table(document.getElementById('table' +
verString));
tableData.draw(v,options);
}else{
$('div#table' + verString).prepend('<p><strong>No Issues
could be found.</strong></p>');
}
});
google.setOnLoadCallback(tableData);
});
google.load('visualization', '1');
$(function dtable() {
var wrapper = new google.visualization.ChartWrapper({
chartType: 'ColumnChart',
dataTable: [cols,rows],
options: {'title': 'Issues by State'},
containerId: 'viz'
});
wrapper.draw();
//google.setOnLoadCallback(dtable);
});