簡體   English   中英

PHP / JavaScript:如何將數組從PHP傳遞到JavaScript

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM