2013-10-24 57 views
0

我试图通过MySQL后,MySQL的JSON数据传递给我的JavaScript加载谷歌图表API。查询成功,但数据格式似乎不正确。任何想法,我在这里做错了吗?我将它保存为.html文件,并通过浏览器打开它。希望应该。将json数据从PHP传递到javascript - 谷歌饼图

< ?php 
$DB_hostname = "localhost"; 
$DB_Name = "root"; 
$DB_pass = "root"; 
$tbl_name="tblname"; // Table name 




$con = mysql_connect($DB_Hostname,$DB_Name,$DB_pass) or die(mysql_error()); 

mysql_select_db("dbname", $con); 
$sql="SELECT * FROM $tbl_name WHERE is86 = 1"; 
$result=mysql_query($sql); 

$count1 = mysql_num_rows($result); 


$sql="SELECT * FROM $tbl_name WHERE is86 = 0"; 
$result=mysql_query($sql); 

$count2 = mysql_num_rows($result); 
$data[0] = array("Changes","count1"); 
$data[1] = array("Apps with IA Architecture",.$count1.); 
$data[2] = array("Apps with no IA Architecture",.$count2.); 

$data = json_encode($data); 
? > 


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

    // 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); 

    function drawChart() { 
    var data = new google.visualization.DataTable(<?=$data?>); 


    var options = { 
     title: 'Architecture Changes', 
     is3D: 'true', 
     width: 800, 
     height: 600 
     }; 

    var chart = new google.visualization.PieChart(document.getElementById('chart_div')); 
    chart.draw(data, options); 
    } 
    </script> 
    </head> 

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

回答

1

你的数据格式不正确的使用DataTable构造这样,但你应该能够使用arrayToDataTable方法:

var data = google.visualization.arrayToDataTable(<?=$data?>); 

而且,你不应该在包括.的并在将$count变量添加到阵列后:

$data[0] = array("Changes", "count1"); 
$data[1] = array("Apps with IA Architecture", $count1); 
$data[2] = array("Apps with no IA Architecture", $count2); 
+0

我做了以下更改:http://pastebin.com/w3TaLbb2当我单独运行php代码作为php文件时,我得到了[[“Changes”,“count1”],[“带有IA的应用程序架构“,8],[”没有IA架构的应用程序“,18]]作为echo $ data的输出 –

+0

这应该与'arrayToDataTable'方法一起工作。 – asgallant

0

引号?

var data = new google.visualization.DataTable('<?=$data?>'); 
+0

还没有运气。我的语法有什么问题吗?我希望不是 –