[英]PHP / JavaScript: how to pass array from PHP to JavaScript
我使用以下PHP行將一些simpleXML數據轉換為數組:
$dataRaw = array();
foreach($objCount->escalations as $esc) {
$dataRaw[(string)$esc->region] = (int)$esc->volume;
}
$dataPrep = json_decode(json_encode($dataRaw), TRUE);
打印此命令返回以下內容,對我來說不錯:
Array ( [af] => 6 [as] => 295 [eu] => 249 [na] => 279 [oc] => 42 [sa] => 10 )
然后,我嘗試使用下面的代碼行在JS函數中傳遞它,但這不起作用。 我沒有收到任何錯誤,圖表根本不顯示任何錯誤,可能是因為它無法識別內容。
data: <?php echo $dataPrep;?>
當我按照以下方式對JS中的“數據”值進行硬編碼時,則一切正常,因此我可能傳遞了錯誤的信息。
var data = [{ 'hc-key': 'af', value: 6 },
{ 'hc-key': 'as', value: 295 },
{ 'hc-key': 'eu', value: 249 },
{ 'hc-key': 'na', value: 279 },
{ 'hc-key': 'oc', value: 42 },
{ 'hc-key': 'sa', value: 10 }];
有人可以告訴我在這里我需要更改嗎?
蒂姆,非常感謝。
您需要傳遞編碼的數據,而不是在解碼之后。 解碼后,它變為數組,我們不能直接將數組分配給js變量:
foreach($objCount->escalations as $esc) {
$dataRaw[(string)$esc->region] = (int)$esc->volume;
}
$dataPrep = json_encode($dataRaw);
和js變量:
data: <?php echo $dataPrep;?>
data: <?php echo json_encode($dataPrep); ?>
PHP手冊: json_encode()
- http://www.php.net/manual/en/function.json-encode.php
嘗試這樣做以獲得所需的結構:
foreach($objCount->escalations as $esc) {
$dataRaw[] = array( 'hc-key' => (string) $esc->region, 'value' => (int) $esc->volume );
}
data: <?php echo json_encode( $dataRaw ); ?>
當您對數據進行json_encode編碼時,您必須在javascript中將其解析為json,然后才能再次獲得數組。 例如使用: http : //api.jquery.com/jquery.parsejson/
但就您而言,您已經通過調用json_decode將其轉換回php數組。 您不能回顯php-array並期望它像javascript數組一樣在源中顯示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.