使用json_encode将PHP数组传递给javascript给出错误?

时间:2016-01-23 23:20:21

标签: javascript php arrays json

我从DB获取一些信息 - 显示在这里:

$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++;
    }

然后在我的javscript中:

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

但是我收到以下错误:

语法错误:意外号码 - &gt; var count =&#34; [&#34; -33.8935642,151.20227810000006&#34;,&#34; -33.857653,151.20853699999998 ...

如果我用echo($ resultArray [0])替换json_encode($ resultArray),则值很好。不确定如何解决它,因为我读过的所有内容都使用这种方法。 TIA

1 个答案:

答案 0 :(得分:0)

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

您将返回JavaScript字符串中<{1}} 的结果。您的语法错误显示:

json_encode

除非转换失败,否则Syntax error: unexpected number --> var count = "["-33.8935642, 151.20227810000006","-33.857653, 151.20853699999998 ... 会返回有效的JavaScript语法,因此您应该在javascript中使用它而不使用任何装饰:

json_encode

如果你想考虑失败的可能性,那么你可以改用它:

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