将json编码的数组传递给jQuery

时间:2014-06-28 00:58:52

标签: javascript php jquery ajax json

我正在尝试使用json_encode()传递我在PHP中创建的数组。我正在运行一个AJAX请求,请参阅以下内容:

AJAX CALL:

$.ajax({
        type: "POST",
        url: "../includes/ajax.php?imagemeta=1",
        data: {
            'id' : $(this).attr('id')
        },
        datatype:"json",
        success: function(data) {
            console.log(data);
            console.log(data["image_height"]);
        },
        error: function(data) {
            console.log(data);
        }
    });

PHP JSON响应:

if(isset($_GET["imagemeta"])){

$id = intval($_POST["id"]);
$path = "../uploads/images/" . $fm->selectImageById($id);
$meta = array();

list($width, $height) = getimagesize($path);
$meta["image_height"]   = $height . 'px';
$meta["image_width"]    = $width . 'px';

print json_encode($meta);

}

虽然,console.log(data)返回以下内容:{"image_height":"1374px","image_width":"920px"}

以下行console.log(data [“image_height”])返回undefined。

我尝试了多次尝试,并阅读了有关该主题的大多数评价最高的问题。我对JSON编码很新,所以如果我在某个地方有误解,请通知我。

3 个答案:

答案 0 :(得分:4)

datatype:"json",

应该是:

dataType:"json",
    ^

Javascript区分大小写。

答案 1 :(得分:0)

如果console.log显示以下内容: -

{"image_height":"1374px","image_width":"920px"}

然后你可以访问" image_height"如下: -

data.image_height;

答案 2 :(得分:0)

设置php JSON响应头或从php返回纯文本并在成功函数中使用$ .parseJSON。

 success: function(data) {
        jSon = $.parseJSON(data);
        console.log(jSon.image_height);
    }