2014-02-27 157 views
0

所以我有這樣的代碼:PHP到Javascript數組麻煩

var loc = new Array(); 
     <?php foreach($loc as $key => $val) { ?> 
      loc.push('<?php print_r($val); ?>'); 
     <?php } ?> 

的問題是在於它的只顯示一個值,而不是一個以上的,像它應該。這是PHP陣列代碼:

$loc = array($lat, $long); 

任何幫助,非常感謝。

+1

['print_r'](http://php.net/print_r)僅用於***調試。這不適用於其他任何事情。 –

+1

你爲什麼使用'print_r()'?它僅用於顯示陣列的格式化版本,並且不能用於從客戶端<->服務器傳輸數據。請使用JSON格式,如下面的[Niet's answer](http://stackoverflow.com/a/22074343/)所示。 –

回答

9

試試這個:

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

你不應該使用print_r。我引述documentation

print_r - 一個變量

注意我強調的部分打印人類可讀信息。 「人類可讀的」。只是因爲它看起來有點像JavaScript可能理解的東西,並不意味着它);另一方面,json_encode專門用於輸出JSON,這是JavaScript爲變量接受的語法的子集。

+0

忍者。 +1因爲速度快(同時是正確的)。 –

+0

我認爲最好有一個簡短的解釋爲什麼給定的代碼不起作用:) –

+1

@AmalMurali編輯。 –