使用$ .each迭代PHP数组

时间:2012-01-02 21:56:17

标签: php jquery

我使用jQuery构建了一个Ajax请求 - 在PHP文件的末尾,调用 - 结果是一个数组:

echo json_encode(array('status' => 'true'));

在调用文件中的jQuery中,我想读一下status是否为true并尝试使用它:

    $.ajax({
        type: "GET",
        url: "logic.php",
        data: "receiver=" + receiverIds + "&subject=" + subject + "&msg=" + msg,

        success: function(data){                        
            $.each(data, function (i, elem) {
                alert(elem.status);
            });
        }
});

但警报始终为undefined。当我在$.each

之前插入此行时
$("#additionalTextDiv").html(data);

我得到以下结果:{"status":"true"}

但为什么每个功能都不能正常工作?

谢谢!

1 个答案:

答案 0 :(得分:3)

将您在AJAX调用中设置的options对象的dataType属性更改为json,以便将JSON字符串解析为JavaScript对象:

$.ajax({
        type: "GET",
        url: "logic.php",
        dataType: 'json',
        ...

.ajax()http://api.jquery.com/jquery.ajax

您的$.each()循环工作正常,这是演示:http://jsfiddle.net/54pB9/

但是,如果要循环浏览大量记录,for循环的执行速度会更快:

for (var i = 0, len = data.length; i < len; i++) {
    alert(data[i].status);
}

以下是演示:http://jsfiddle.net/54pB9/1/