使用ajax检索json编码的多维数组

时间:2017-02-23 16:50:39

标签: php arrays json ajax

我成功(测试)调用了一个php脚本的ajax请求。这是我需要工作的代码部分:

   success: function (response, status) {
       $.each(response, function (i, item) {
          alert(item.id);

item.id只是......没什么。

这是php页面生成的--json_encoded数组:

[
  {
    "conto": "1"
  },
  {
    "id": "4",
    "activity_id": "50",
    "path": "Testo/base.png",
    "title": "Ffgf",
    "descrizione": "Tttt"
  },
  {
    "id": "8",
    "activity_id": "50",
    "path": "Testo/61FCFUX_IMG_0536.PNG",
    "title": "Hggggg",
    "descrizione": "Tgg"
  }
]

我做错了什么?

p.s:如果你注意到,这是两个数组之间的数组合并:第一个只报告“conto”,另一个是通过数据库提取元素生成的列表。

2 个答案:

答案 0 :(得分:1)

您的第一个数组不包含id,因此您获得了未定义的值。跳过第一个数组:

$.each(response, function (i, item) {
         if(i==0)
         {
            alert(item.costo);
          }
          else
          {
            alert(item.id);
           //Or better to use console
           console.log(item.id);
          }

        });

答案 1 :(得分:-1)

我相信您的问题与您的参考有关。由于您的JSON对象包含一个数组,因此您需要使用下标来引用它。尝试将item.id更改为item [i] .id。这样,当每个函数遍历数组时,它可以引用每个对象中的id字段。

编辑:这是工作代码。

$(document).ready(function (){

    var source = '[{"conto":"1"},{"id":"4","activity_id":"50","path":"Testo\/base.png","title":"Ffgf","descrizione":"Tttt"},{"id":"8","activity_id":"50","path":"Testo\/61FCFUX_IMG_0536.PNG","title":"Hggggg","descrizione":"Tgg"}]';
    source = JSON.parse(source);
    var cellcount = length(source);

    for(var i = 0; i < cellcount; i++){
        console.log(source[i].id);
    }

});

function length(obj) {
    return Object.keys(obj).length;
}