簡體   English   中英

使用json_encode將PHP數組傳遞給javascript會出錯?

[英]Passing PHP array to javascript using json_encode giving errors?

我從數據庫中獲取了一些信息-如下所示:

$link = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $link->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $handle = $link->prepare("SELECT dropAddress FROM mv_bookingEst WHERE userID='$userID'"); 
    $handle->execute();
    $result = $handle->fetchAll(\PDO::FETCH_OBJ);
    //print_r($result);
    $x = 0;
    foreach($result as $obj){
         $resultArray[$x] = $obj->dropAddress;
         $x++;
    }

然后在我的腳本中:

var count = "<?php echo json_encode($resultArray); ?>";

但是我收到以下錯誤:

語法錯誤:意外數字-> var count =“ [” -33.8935642,151.20227810000006“,”-33.857653,151.20853699999998 ...

如果我用echo($ resultArray [0])替換json_encode($ resultArray),則值可以通過。 不確定如何解決此問題,因為我閱讀的所有內容均使用此方法。 TIA

 var count = "<?php echo json_encode($resultArray); ?>"; 

您在返回的結果json_encode一個JavaScript字符串的內部 您的語法錯誤顯示如下:

 Syntax error: unexpected number --> var count = "["-33.8935642, 151.20227810000006","-33.857653, 151.20853699999998 ... 

除非出現故障,否則json_encode返回有效的JavaScript語法 ,因此您應按原樣使用它,而在javascript中沒有任何修飾:

var count = <?php echo json_encode($resultArray); ?>;

如果要考慮失敗的可能性,則可以改用以下方法:

var count = <?php
     $tmp = json_encode($resultArray);
     echo ($tmp === false ? 'null' : $tmp);
?>;

暫無
暫無

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

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