2013-04-20 33 views
2

我想製作一個Google圖表,我試圖從一個PHP腳本發送一個JSON編碼數組到一個JavaScript。這兩個文件如下:如何將數組從PHP傳遞到使用JSON生成Google圖表的JavaScript?

<html> 

<head><title> 

</title></head> 

<body> 
<?php 
$data[0]=array('State','Values'); 
$data[1]=array('Correct',6); 
$data[2]=array('Incorrect',3); 

echo json_encode($data); 
?> 
</body> 
</html> 

這被保存爲test.php的

JavaScript文件是:

<html> 
    <head> 
    <script type="text/javascript" src="jquery-1.9.1.min.js"></script> 
    <script type="text/javascript" src="https://www.google.com/jsapi"></script> 
    <script type="text/javascript"> 
     google.load("visualization", "1", {packages:["corechart"]}); 
     google.setOnLoadCallback(drawChart); 

     function drawChart() { 


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

    var data=google.visualization.arrayToDataTable(jsonData); 

    var options = { 
     title: 'My Chart' 
    }; 

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

    <body> 
    <div id="chart_div" style="width: 900px; height: 500px;"></div> 
    </body> 

</html> 

這被保存爲test2.php。

當我運行test2.php時,沒有任何反應,瀏覽器顯示一個空白屏幕。我在哪裏錯了?請幫忙。

謝謝。

回答

3

您的test.php中不需要任何HTML標籤。相反,只需使用:

<?php 
$data[0]=array('State','Values'); 
$data[1]=array('Correct',6); 
$data[2]=array('Incorrect',3); 

header("Content-Type: application/json"); 
echo json_encode($data); 
?> 

HTML不是JSON的一部分。

+0

謝謝你,我的朋友。你救了我的命。你是一個傳奇! – 2013-04-20 17:36:47

+0

如果這解決了您的問題,請在我的答案旁邊的綠色勾號中打勾 - 歡迎來到Stack Overflow! – Alfo 2013-04-20 18:47:54

0

test.php不需要所有這些html標記,只是返回json。在混合使用js和PHP時,首先使用硬編碼值是一個好主意,然後讓PHP在創建硬編碼值時確定js已經聯合並運行。

相關問題