簡體   English   中英

無法訪問JavaScript中的PHP數組,已初始化為數組的javascript對象在chrome開發人員工具中最終為空

[英]Unable to access PHP array in javascript, javascript object initialized to array ends up empty in chrome developer tools

我正在嘗試從PHP數組獲取JSON,以便可以將JSON覆蓋到Google圖表地理圖表上。 所以我試圖通過在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控制台上,我得到

未捕獲到的SyntaxError:意外令牌;

在此test.php文件的第11行

Chrome有時無法正確顯示可處理的數組和XML,但它們確實存在。 我的建議:在其他瀏覽器上獲取實際結果之前,請不要在chrome上測試您的代碼。

昨天我遇到了這種情況。

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

</script>

在我看來,$ rowarr不包含您認為的內容。 也許先嘗試記錄它。

console.log("$rowarr");

您的路線正確。

首先,您可以擺脫封閉的document.onload,因為它毫無意義。

其次,這是修改后的代碼:

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

console.log(jsonObject);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM