2012-06-15 121 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