2012-06-15 154 views
1

我已經進行了很好的搜索並且難住了。這可能是一個簡單的答案,但本週80小時工作至今之後,我看不出它......訪問數據結構中的元素

在我的應用我通過一些變量到Web服務,它傳回的單一結構包含鍵/值對。

$.ajax({ 
    type: "POST", 
    url: "it_submitcall.php", 
    data: {callService: "getcall", callid: $("#callNumber").val()}, 
    dataType: "HTML", 
    success: function(data){ 
     //do stuff here 
    }, 
    error: function(data){ 
     // unable to communicate with web service stuff here 
    } 
}); 

我回來的響應是

Array 
(
    [CALLID] => 44497 
    [CALLERNAME] => Chris 
    [TEAMID] => 1175 
) 

如何訪問上面的元素在JavaScript?任何指針將不勝感激......

非常感謝。

+0

是,實際的響應文本? –

+0

已經嘗試過各種訪問數組的方法,但是在螢幕控制檯中不斷回覆「undefined」 – ChrisM

+0

這是PHP數組的正文版本嗎? – phenomnomnominal

回答

2

在PHP端使用json_encode打開數組JSON如:

<?php 
    $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); 
    echo json_encode($arr); 
?> 

然後在JavaScript端使用JSON.parse()得到一個Javascript對象回來 - 你的情況:

success: function(data){ 
    var obj = JSON.parse(data); 
}, 
+0

工作!你搖滾...在PHP端: – ChrisM

+0

:$ result = $ client - > __ soapCall($ wsdlOperation,array('parameters'=> $ param)); echo json_encode($ result); 然後在JS端:var obj = JSON.parse(data); 訪問該元素:obj [「CALLID」] 許多很多謝謝... – ChrisM

1

作爲@phenomnomnominal筆記,你可以使用json_encode()一個PHP對象來把它轉化爲JSON(和,值得注意的是,json_decode()從JSON把它交給一個PHP對象)

一旦你明白了這一點,很好地說,PHP和JS「哈希」式對象的行爲非常相似(在PHP中,我們稱這些關聯數組爲JavaScript對象文字)。

在PHP中,你訪問數組$your_var這樣的:

$value = $your_var[ 'key' ]; 

您還可以使用變量:

$key = 'key'; 
$value = $your_var[ $key ]; 

在JavaScript中,這是非常相似:

var value = your_var[ 'key' ]; 

或者:

var key = 'key'; 
var value = your_var[ key ]; 

而且還有一個更語法是有幫助的,當你不需要的變量訪問關鍵的更高效:

var value = your_var.key 
+0

這也有助於澄清一對夫婦點...非常感謝:) – ChrisM