[英]'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.