来自PHP的jQuery show数组(json编码)

时间:2015-11-03 23:45:50

标签: php jquery arrays json

我正在尝试使用jQuery显示一个数组,但它没有显示我想要的任何内容:P

所以我在这里问过谷歌后坐在这里最近的一小时仍然无法弄清楚我做错了什么..

我的阵列是这样的:

if (isset($_POST['imageID'])) { 
            $array = array();
            list($width, $height, $type, $attr) = getimagesize("../img/libary/".$_POST['imageID'].".JPG");

            $array["dimension"] = $width.' x '.$height;
            $array["filesize"] = formatBytes(filesize("../img/libary/".$_POST['imageID'].".jpg"),0);
            $array["extensions"] = strtoupper(pathinfo("../img/libary/".$_POST['imageID'].".jpg", PATHINFO_EXTENSION));
            $array["filename"] = $_database->query("SELECT * FROM imglibary WHERE imageID='".$_POST['imageID']."' LIMIT 1")->fetch_object()->name; 
            $array["fileurl"] = $_SERVER['DOCUMENT_ROOT'].'/img/libary/'.$_POST['imageID'].'.JPG';

            echo json_encode($array);
        }

和jQuery代码:

$.post("jQuery.post.php", {imageID: imageID}, "json").done(function(data) { 
 // What to do here to get it to work? 
  });

希望你们能得到答案:(

错过了显示“数据”的答案:

{"dimension": "210x214", "filesize", "214kb", "extensions", "JPG", "filename": "somefile.jpg", "fileurl": "/img/libary/40.JPG"}

1 个答案:

答案 0 :(得分:2)

使用$.parseJSON来解析从服务器返回的数据,除非您从PHP页面发送application/json标题。

如果您想从PHP页面开始发送正确的JSON标题,请将其添加到页面顶部,默认设置为text/html,这就是您需要解析数据的原因:

header('Content-type: application/json');

然后,它就像console.log(data.dimension)一样简单,无需解析。只要您将json设置为dataType,jQuery就会自动为您解析数据。

如果您不想/不能发送正确的标题,或者您不确定它们是什么,请使用parseJSON()

parseJSON示例:

$.post("jQuery.post.php", {imageID: imageID}, "json").done(function(data) { 
   var d = $.parseJSON(data);
   console.log(d.dimension);
});