1

PHP配列からJSONを取得しようとしているので、JSONをGoogleChartsのジオチャートにオーバーレイできます。だから私は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:予期しないトークン;

このtest.phpファイルの11行目

4

4 に答える 4

1

Chromeは、処理可能な配列とXMLを正しく表示しない場合がありますが、それらは存在します。私のアドバイス:他のブラウザで実際の結果を得る前に、Chromeでコードをテストしないでください。

于 2012-07-25T19:16:03.180 に答える
0

$ rowarrには、あなたが思っているものが含まれていないようです。たぶん、最初にそれをログに記録してみてください...。

console.log("$rowarr");
于 2012-07-25T19:17:05.593 に答える
0

私は昨日この種のシナリオに遭遇しました。

<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 に答える
-1

あなたは正しい方向に進んでいます。

まず第一に、それは無意味なので、あなたはそれを囲んでいるdocument.onloadを取り除くことができます。

次に、修正されたコードは次のとおりです。

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

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