2014-01-27 18 views
0

我有這樣的陣列:錯誤trasfering PHP數組的JavaScript

$men['display']=array( 
        "edit"  =>"1", 
        "description" =>"2", 
        "phone"  =>"3", 
        "mail"  =>"4" 
       ); 

我試圖通過使用將其傳送到的javascript:

<?php $disArray = json_encode($men['display']);?>

然後,我把它發給的javascript:

<select id="selectBoxHere" onChange="loadInnerHTML('<?php $disArray ?>')";>

由於某些原因,我的javascript函數'loadInnerHTML'不會發送我的數組到javascript。

+0

什麼是loadInnerHTML? – scrblnrd3

+1

您正在向'loadInnerHTML()'發送JSON字符串,而不是數組。刪除''''在'<?php $ disArray?>'周圍的'''或者用'JSON.parse()'將字符串解析成一個數組''另外,你沒有迴應變量。 – crush

+0

它的一個JavaScript函數。 我想通過使用Ajax將php數組傳遞到不同的頁面。 – user3164596

回答

3

你忘記了echo陳述。

而且,如果您使用單引號,則會使其成爲字符串。對於JavaScript對象,您不需要單引號,json_encode將確保它是安全的。

loadInnerHTML(<?php echo $disArray ?>) 

我也建議您直接在JavaScript中存儲這個變量第一,而不是將它變成一個功能。否則,你不得不擔心雙引號內的雙引號,打破你的<select>標籤。

var disArray = <?php echo $disArray ?>; 

然後您可以使用該變量。

loadInnerHTML(disArray) 
0

呼應在PHP陣列將導致

var dis_array = Array 

其中JS無法理解。試試:

var disArray = JSON.parse('<?php echo json_encode($disArray ) ?>');