我有一个很好的搜索,我很难过。这可能是一个简单的答案,但本周到目前为止工作80个小时后,我看不到它......
在我的应用程序中,我将一些变量传递给Web Service,后者传回一个包含键/值对的结构。
$.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 :(得分: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);
},
答案 1 :(得分:1)
正如@phenomnomnominal所说,您可以在PHP对象上使用json_encode()
将其转换为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