2010-11-20 3 views
1

PHP로 배열 형식으로 아약스 응답을 받고 있어요. jQuery에서 배열 응답 값을 추출하는 방법? 는 참고 :PHP : ajax 배열 응답을 추출하는 방법

PHP 배열은 다음과 같습니다

$response = array('msg' => 'Hello', 'html' => '<b>Good bye</b>'); 

내가 내 아약스 응답에 $ 응답 배열을 얻고있다. 즉

var promo = "promo=45fdf4684sfd"; 
$.ajax({ 
    type: "POST", 
    url: baseJsUrl + "https://stackoverflow.com/users/calc_discount", 
    data: promo, 
    success: function (msg) { // I am getting $response here as ajax response. 
     //alert(msg); 

     // Here I want to check whether response is in array format or not. if it is in array format, I want to extract msg here and want to use response array values. 
    } 
}); 

답장을 보내주십시오. 감사합니다. .

답변

8

$responsejson_encode()으로 반향시켜야합니다.

으로 보내는 개체 리터럴 안에 dataType: 'json'도 설정해야합니다.

이 그럼 당신은 ... 자바 스크립트가 성공 콜백 내에서 도트 연산자를 사용하여 기본적으로 액세스 할 수 있습니다
function(msg) { 
    alert(msg.html); 
} 

BTW,이 라인 ...

$response = array(['msg'] => 'Hello', 'html' => '<b>Good bye</b>'); 

... isn't valid PHP. 첫 번째 키에서 브래킷을 분리하십시오.

+0

분명히하기 위해 echo json_encode ($ response); –

+0

알렉스가 맞습니다. php 배열을 편집했습니다. – gautamlakum

+0

Downvoter 문제를 말해주십시오 :) – alex

1

필자가 가장 좋아하는 솔루션은 PHP의 json_encode() 함수를 사용하여 배열을 인코딩하는 것입니다. jquery가이를 처리하게되어 기쁩니다.

0

나는 이런 식으로, 당신은 JSON 응답을 의미하는 것으로 추정 :

{"msg":"Hello","html":"<b>Good bye<\/b>"} 

당신이 바로 이런 사용할 수 있도록이 실제로 기본 JS 개체입니다 :

success: function(msg){ 
    alert(msg.msg); 
    alert(msg.html); 
} 

당신은 할 수 있습니다 당신이 필요로하는 경우도 JSON 객체의 모든 속성을 통해 루프에 jQuery.each() 기능을 사용하려면 :

jQuery.each(msg, function(key, val) { 
    alert(key + "=" + val); 
}); 
0

그리고 PHP 출력을 제어 할 수없는 경우 다른 방법을 사용하여 결과를 얻을 수 있습니다. 또 다른 해결책은 http://phpjs.org/ 라이브러리를 사용하는 것입니다. 여기에서 JS에서 PHP에서 사용할 수있는 많은 함수를 찾을 수 있습니다. 사용법은 PHP와 동일합니다. 그래서 거기에서 json_encode/json_decode를 얻고 사용하면 문제를 쉽게 해결할 수 있다고 생각합니다.

필요한 기능 만 컴파일 할 수 있습니다. 귀하의 경우에는 json_encode 및 json_decode입니다. 전체 라이브러리를 다운로드 할 필요가 없습니다. 라이브러리를 컴파일하는 URL : http://phpjs.org/packages/configure

+0

PHPJS의 json_encode 및 _decode는 JS 객체에서만 작동하며 PHP에 상응하지 않습니다. –

+0

예, 에밀. 당신 말이 맞아요. 하지만 거기에있는 모든 함수를 테스트하지는 않았지만 json_encode/decode는 PHP와 동일한 방식으로 작동해야합니다. 나는 거기에서 몇 가지 기능을 사용하고 올바른 방법으로 일하고 있었다. 오류를 지적 해 주셔서 감사합니다. –

관련 문제