簡體   English   中英

'意外的令牌:標識符錯誤'-從php代碼向javascript函數分配php json數組類型變量值

[英]'unexpected token: identifier error' - assigning php json array type variable value to a javascript function from php code

我試圖在php中調用JavaScript函數,並將php json數組類型變量的值作為參數傳遞。 我從SO論壇上的搜索中發現,執行此操作的一種方法是將變量值echo / print_r返回到php代碼中js腳本內的js var。 我正在嘗試通過這種方式進行操作,但是在執行此操作時無法從'unexpected token: identifier error '恢復。

我試圖找出語法錯誤的原因,但不能。 我嘗試了各種發現的方法。 通過在腳本中的php部分周圍加上單引號/雙引號,因為某些地方沒有引號,所以我找到了帶引號的解決方案。

這是我的代碼。 如果有人看到它並指出導致此錯誤的原因,這將非常有幫助。

    <script>
    dspChrt(WData);
    .......
    </script>
<HTML>
     <?php

          $WData;
          require("Connection.php");

                try {
                    $stmt = $conn->prepare("Select humidity, temperature FROM weatherdata");
                            $stmt->execute();

                    $result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
                    foreach($stmt->fetchAll() as $k=>$v) {       
                    $WData = json_encode($v);
                    //print_r($WData);
                    }?>

                    <script>
                    var Wdata = <?php print_r($WData);?>
                    dspChrt(WData);
                    consol.log(WData);
                    </script>

                    <?php
                        }
                    catch(PDOException $e) {
                    echo "Error: " . $e->getMessage();
                    }

         ?>
</HTML>

您應該將PHP編碼為JSON,以將其傳遞給JavaScript。

您應該先准備數據。

<?php
    $data = array('xxx'=>'yyy');
?>
<script>
    var data = <?php echo json_encode($data); ?>;
    //then in js, use the data
</script>

對於您的代碼,有太多錯誤需要修復:

  <HTML>
    <?php
    require("Connection.php");
    $stmt = $conn->prepare("Select humidity, temperature FROM weatherdata");
    $stmt->execute();

    $result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
    $WData = array();
    foreach($stmt->fetchAll() as $k=>$v) {       
      $WData[] = $v;
    }
    ?>

    <script>
      var WData = <?php echo json_encode($WData);?>;
      console.log(WData);
      dspChrt(WData);
    </script>
  </HTML>

首先,您需要使用JSON.parse解析JSON。

另外,您需要更改php和javascript代碼的順序。

如果您想將php數據分配給Javascript變量,請先使用php檢索數據,然后在其下面編寫JavaScript代碼。

例如 :

<?php

$v = array(1,2,3);
$data = json_encode($v);

?>

<script>

 var WData = JSON.parse('<?php echo $data; ?>');
 dspChrt(WData);

</script>

暫無
暫無

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

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