所以我有這樣的代碼:PHP到Javascript數組麻煩
var loc = new Array();
<?php foreach($loc as $key => $val) { ?>
loc.push('<?php print_r($val); ?>');
<?php } ?>
的問題是在於它的只顯示一個值,而不是一個以上的,像它應該。這是PHP陣列代碼:
$loc = array($lat, $long);
任何幫助,非常感謝。
所以我有這樣的代碼:PHP到Javascript數組麻煩
var loc = new Array();
<?php foreach($loc as $key => $val) { ?>
loc.push('<?php print_r($val); ?>');
<?php } ?>
的問題是在於它的只顯示一個值,而不是一個以上的,像它應該。這是PHP陣列代碼:
$loc = array($lat, $long);
任何幫助,非常感謝。
試試這個:
var loc = <?php echo json_encode($loc); ?>;
你不應該使用print_r
。我引述documentation:
print_r
- 一個變量
注意我強調的部分打印人類可讀信息。 「人類可讀的」。只是因爲它看起來有點像JavaScript可能理解的東西,並不意味着它);另一方面,json_encode
專門用於輸出JSON,這是JavaScript爲變量接受的語法的子集。
忍者。 +1因爲速度快(同時是正確的)。 –
我認爲最好有一個簡短的解釋爲什麼給定的代碼不起作用:) –
@AmalMurali編輯。 –
['print_r'](http://php.net/print_r)僅用於***調試。這不適用於其他任何事情。 –
你爲什麼使用'print_r()'?它僅用於顯示陣列的格式化版本,並且不能用於從客戶端<->服務器傳輸數據。請使用JSON格式,如下面的[Niet's answer](http://stackoverflow.com/a/22074343/)所示。 –