2013-02-28 16 views
6

Wiele przeszukałem i wreszcie mogłem uruchomić mój kod map google. Oto mój kod przy użyciu widoku danych i tabeli danych.Dlaczego muszę przekazać DataView (zamiast tylko DataTable) do PieChart.draw()?

// Tu jest mój kod 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: zawiera połączenia i zapytania

<?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; 

?> 

Jaka jest różnica między DataView klasy i DataTable konstruktora? Jeśli nie używam DataView, nie drukuje.

+0

Zapomniałeś zadać pytanie –

+1

To była tylko odpowiedź. Rozwiązałem mój problem, więc wysłałem go. Ale nadal dodałem pytanie .. – Atihska

+0

Ta strona jest dla pytań, a następnie odpowiedzi. nie tutoriale. –

Odpowiedz

Powiązane problemy