2012-12-16 4 views
0

PHP에서 배열을 json_encode으로 보내고 AJAX와 jQuery로 가져 오려고합니다. 모든 것은 괜찮습니다.jQuery로 PHP에서 JSON 데이터를 읽음

JSON 구조는 다음과 같습니다

names{"p1":"John","p5":"Smith"} 

jQuery 코드는 다음과 같습니다

$.ajax({ 
type: "POST", 
url: "return.php", 
dataType: "json", 
data: "id=56", 
success: function(data) { 
     $(data.names).each(function(key, txt) { 
      alert(txt); 
     }); 
    } 
} 

이 코드는 어떤 일을 반환하지 않습니다! 브라우저가 입력되지 않는다고 생각합니다 each

어떻게해야합니까?

답변

3

대신 :

$(data.names).each(function(key, txt) { 
    alert(txt); 
}); 

사용이 :

$.each(data.names, function(key, txt) { 
    alert(txt); 
}); 

와 JSON은 당신이 언급 한 바와 같이 잘못된 것 같다 : names{"p1":"John","p5":"Smith"}

이 다음과 같이해야합니다 :

{ 
    "names": { 
     "p1": "John", 
     "p5": "Smith" 
    } 
} 

여기에서 json을 확인할 수 있습니다. http://jsonlint.com/

1

jQuery의 $ .getJSON(); http://api.jquery.com/jQuery.getJSON/ 하지만 직접 질문에 대답하십시오. 당신은 ajax() 함수를 닫지 않았다. 코드에서

$.ajax({ 
type: "POST", 
url: "return.php", 
dataType: "json", 
data: "id=56", 
success: function(data) { 
     $(data.names).each(function(key, txt) { 
      alert(txt); 
     }); 
    } 
}); 
1

그냥 parseJSON를 사용할 수있다().

 

    $.ajax({ 
    type: "POST", 
    url: "return.php", 
    dataType: "json", 
    data: "id=56", 
    success: function(data) { 
     var d = jQuery.parseJSON(data); 
     // ... do stuff 
    } 
    });