2

我想制作一个谷歌图表,我试图将一个 JSON 编码的数组从 PHP 脚本发送到 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 时,什么也没有发生,浏览器显示一个空白屏幕。我在哪里错了?请帮忙。

谢谢。

4

2 回答 2

3

您的test.php. 相反,只需使用:

<?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 的一部分。

于 2013-04-20T17:31:55.610 回答
0

test.php 不需要所有这些 html 标签,只需返回 json。在混合 js 和 PHP 时,有时最好先使用硬编码值,然后在确定 js 已连接并正常工作时让 PHP 创建这些硬编码值。

于 2013-04-20T17:32:36.197 回答