2017-02-23 1 views
0

으로 json으로 인코딩 된 다차원 배열을 검색합니다. 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"를보고하고 다른 배열은 데이터베이스로 요소를 가져 와서 생성 된 목록입니다.

+0

첫 번째 반복에서 'item.id'는 단순히 해당 개체에 존재하지 않으므로 정의되지 않습니다. Check with :'if (item.id) {// do do stuff}' –

답변

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); 
      } 

     }); 
+0

작동하지 않음 ... 문제는 다차원 배열이라는 사실과 관련이 있다고 생각합니다. –

+0

그런 다음 예제에 따라 작동하는지 확인하십시오. 예제를 참조하십시오. https://jsfiddle.net/sqdjk1zL/ –

+0

@GiovanniPalerma 현재 다차원 배열은 어디에 있습니까? – Coder

-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; 
} 
+0

OP가 jQuery의'.each()'를 사용하고 있으므로'item'이 실제 객체가 될 것입니다. http://api.jquery.com/jquery.each/. 이것이 사실이 아니더라도 item (i) (함수 호출)이 아니라 item [i] (배열/객체 인덱스)입니다. –

+0

@MagnusEriksson 편집 된 답변에서 알 수 있듯이, 내가 무슨 말을하고 있었는지 보여주는 코드를 추가했습니다. 나는 그것을 고치기 전에 모든 것을 곧바로 잡기 위해 단지 1 분이 필요했다. 사람들을 downvote 너무 빨리하지 마십시오. – Daniel

+0

@ 대니얼 downvotes 걱정하지 마십시오. 그들은 단지 당신이 즉흥적으로 할 수 있도록 제안하려고합니다. – Coder