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.
Hai dimenticato di fare una domanda –
Era una risposta solo. Ho risolto il mio problema quindi l'ho postato. Ma ancora ho aggiunto una domanda .. – Atihska
Questo sito è per domande e quindi risposte. non tutorial. –