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 中访问上述元素?任何指针将不胜感激......

非常感谢。

4

2 回答 2

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);
},
于 2012-06-15T15:16:41.910 回答
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
于 2012-06-15T15:23:00.340 回答