1

我正在尝试从 PHP 数组中获取 JSON,以便可以将 JSON 覆盖到谷歌图表 geochart 上。所以我试图通过在 test.php 文件中使用这个简单的代码来完成这个工作

<?php 
  include("conn.php");
?>

<!DOCTYPE html>
<html>
<head>
  <title>test</title>
</head>
<body>

<script type="text/javascript">
  document.onload = function (){
    var jsonObj = <?php echo json_encode($rowarr, JSON_FORCE_OBJECT); ?>;
    var jsonString = JSON.stringify(jsonObj, null, '\n');
    console.log(jsonString);
  };

</script>
</body>
</html>

conn.php 文件返回一个像这样的数组

{"Auckland":37616,"Wellington":35357,"Christchurch":29818}

但在 chrome 开发人员工具中,我看到此代码显示为

document.onload = function (){
var jsonObj = ;
    // Chrome error here -> Uncaught SyntaxError: Unexpected token ;
var jsonString = JSON.stringify(jsonObj, null, '\n');

jsonObj 变量是空的,当它应该有东西的时候。

在 CDT 控制台上我得到

Uncaught SyntaxError: Unexpected token ;

在这个 test.php 文件的第 11 行

4

4 回答 4

1

Chrome 有时只是无法正确显示可处理的数组和 XML,但它们确实存在。我的建议:在其他浏览器上获得实际结果之前,不要在 chrome 上测试你的代码。

于 2012-07-25T19:16:03.180 回答
0

I have encountered this kind of scenario yesterday.

<script type="text/javascript">
  document.onload = function (){
    var jsonObj = <?php echo json_encode($rowarr); ?>;
    var jsonString = JSON.parse(jsonObj);
    console.log(jsonString);
  };

</script>
于 2012-07-25T19:13:10.707 回答
0

在我看来, $rowarr 不包含您认为它包含的内容。也许先尝试记录它....

console.log("$rowarr");
于 2012-07-25T19:17:05.593 回答
-1

你是正确的。

首先,您可以摆脱封闭的 document.onload ,因为它毫无意义。

其次,这是修改后的代码:

var jsonStringified = <?php echo json_encode($rowarr); ?>,
    jsonObject = JSON.parse(jsonStringified);

console.log(jsonObject);
于 2012-07-25T19:22:53.207 回答