2016-01-23 96 views
0

我取從DB一些信息 - 這裏顯示:使用json_encode將PHP數組傳遞給JavaScript使用錯誤?

$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); ?>"; 

不過,我得到以下錯誤:

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

如果我替換帶有echo($ resultArray [0])的json_encode($ resultArray),值傳遞正常。不知道如何解決它,因爲我讀過的所有東西都使用這種方法。 TIA

+3

你試過tak從JavaScript塊周圍的引號出來的JavaScript? –

回答

0
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); 
?>; 
+0

如果我做var count = <?php echo json_encode($ resultArray); ?>; 沒有「」它給了我一個錯誤 - 未捕獲的SyntaxError:意外的標記< 這就是它看起來像在控制檯... 變種數=
@jbafford –

+0

我需要看到實際的輸出HTML來提供一個建議。 – jbafford

+0

如果你看看我剛剛添加到問題中的圖片,除非你還有其他的東西嗎? @jbafford –

相關問題