2014-06-28 34 views
1

我想通過我使用json_encode()在PHP中創建的數組。我運行一個AJAX請求,請參閱如下:將json_encoded數組傳遞給jQuery

AJAX調用:

$.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); 

}

雖然控制檯。日誌(數據)返回以下內容:{"image_height":"1374px","image_width":"920px"}

以下行console.log(data [「image_height」])返回未定義。

我已經嘗試了多次嘗試,並已閱讀了大部分有關該主題的最高評分問題。我對JSON編碼相當新,所以請告訴我我是否有誤解。

+0

試試'data.image_height'? –

回答

4
datatype:"json", 

應該是:

dataType:"json", 
    ^

JavaScript是區分大小寫的。

+0

哦,我的天啊。我恨我的小錯誤,讓我離開了幾個小時。萬分感謝! –

0

如果執行console.log顯示你以下幾點: -

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

然後你就可以訪問 「IMAGE_HEIGHT」 如下: -

data.image_height; 
0

要麼設置PHP JSON響應頭或PHP返回純文本並在成功函數中使用$ .parseJSON。

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