2013-02-28 5 views
6

Ho cercato molto e finalmente ho potuto eseguire il mio codice di Google. Ecco il mio codice che utilizza sia la visualizzazione dati che la tabella dati.Perché devo passare un DataView (anziché solo un DataTable) a PieChart.draw()?

// Ecco il mio codice per chartDraw.php

<html> 
<head> 
<!--Load the AJAX API --> 
<script type="text/javascript" src="https://www.google.com/jsapi"></script> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" type="text/javascript"></script> 

<script type="text/javascript"> 

function drawChart(){ 
    var jsonData = $.ajax({ 
     url:"getdata.php", 
     dataType:"json", 
     async:false 
     }).responseText; 

//This is used when you hard code your values: static data. Here I am taking data from database so commented it. 
/*var jsonData='{"cols":[{"label":"User ID","type":"string"},{"label":"Group Name","type":"string"},{"label":"Requested Nodes","type":"number"},{"label":"Actual PE","type":"number"}],"rows":[{"c":[{"v":"user 1"},{"v":"ufhpc"},{"v":1},{"v":5.000}]},{"c":[{"v":"user2"},{"v":"ufhpc"},{"v":1},{"v":7.000}]}]}'; 
*/ 
//Create our data table out of JSON data loaded from server 
var data=new google.visualization.DataTable(jsonData); 

//PieCharts expects 2 columns of data: a label and a value, so we need to use a DataView to restrict to 2 columns 
var view=new google.visualization.DataView(data); 
view.setColumns([0,3]); 

//Instantiate and draw our chart, passing in some options 
var chart=new google.visualization.PieChart(document.getElementById('chart_div')); 
chart.draw(view,{width:400,height:240}); 
} 

//Load the visualization API and the piechart package 
google.load('visualization','1',{'packages':['corechart']}); 

//Set a callback to run when the google visualization API is loaded 
google.setOnLoadCallback(drawChart); 
</script> 
</head> 

<body> 
     <!--Div that will hold the pie chart --> 
     <div id="chart_div"></div> 
</body> 
</html> 

//getdata.php: contiene le connessioni e le query di

<?php 

mysql_connect('localhost','user','password'); 
mysql_select_db('dbname'); 

$sqlquery1="select userid,group_name,req_nodes,actualPE from jobs where userid='zhang' limit 200"; 

$sqlresult1=mysql_query($sqlquery1); 

$table=array(); 
$table['cols']=array(
     array('label'=> 'User ID', type=>'string'), 
     array('label'=>'Group Name', type=>'string'), 
     array('label'=>'Requested Nodes', type=>'number'), 
     array('label'=>'Actual PE', type=>'number') 
); 
$rows=array(); 

while($r=mysql_fetch_assoc($sqlresult1)){ 
     $temp=array(); 
     $temp[]=array('v' => $r['userid']); 
     $temp[]=array('v' => $r['group_name']); 
     $temp[]=array('v' =>(int) $r['req_nodes']); 
     $temp[]=array('v' =>(float) $r['actualPE']); 

     $rows[]=array('c' => $temp); 
} 

$table['rows']=$rows; 

$jsonTable = json_encode($table); 
//this print statement just for testing 
print $jsonTable; 

?> 

Qual è la differenza tra DataView di classe e DataTable costruttore? Se non utilizzo DataView, non stampa.

+0

Hai dimenticato di fare una domanda –

+1

Era una risposta solo. Ho risolto il mio problema quindi l'ho postato. Ma ancora ho aggiunto una domanda .. – Atihska

+0

Questo sito è per domande e quindi risposte. non tutorial. –

risposta

0

Con google:

Google visualization API.

Stack Overflow non è per i tutorial, è per questioni produttive. Se desideri creare tutorial, potresti voler utilizzare un sito web chiamato The Code Player.

Problemi correlati