2014-02-07 2 views
2

수십 개의 관련 게시물을 읽었지만 여전히 작동하지 않습니다.아약스 응답 알림 방법

jquery에서 응답을 PHP로 보내려고합니다.

PHP :

$msg=array(); 

    if(empty($whatever)){ 
     $msg['cenas']="Não há contas"; 
    }else{ 
     $msg['cenas']="Há contas"; 
    }; 

    echo json_encode($msg); 

JS :

$.ajax({ 
    url: 'myscript.php', 
    dataType: 'json', 
    success: function(response){ 
     alert(response.cenas); 
    } 
}); 

PHP는

반향된다 {CENAS을 "하 contas}" 그러나 나는에 경고를 얻을 수 없다 JS.

+3

firebug 또는 chrome 개발자 도구를 사용하면 경고를 'console.log (response)'로 기록합니다. 그러면 전체 객체 응답이 표시되고 무엇이 잘못되었는지보아야합니다. –

+0

@ HarveyA.Ramer console.log (응답)는 "success"를 반환합니다. –

+1

즉, 성공하면 myscript.php 파일에서 문자열을 반환한다는 의미입니다. 이 경우 객체를 반환하여 수행하려는 작업을 수행해야합니다. 이것은 도움이 될 수 있습니다 : http://stackoverflow.com/questions/8649621/returning-a-json-object-from-php-in-ajax-call –

답변

3

PHP는 {"cenas": "Há contas"}을 되풀이해야하지만 경고 메시지는 무엇입니까? 정의되지 않았습니까? 그렇다면 경고 앞에 jQuery.parseJSON을 사용해보십시오. 예 :

$.ajax({ 
    url:"myscript.php", 
    dataType: "json", 
    success:function(data){ 
     var obj = jQuery.parseJSON(data); 
     alert(obj.cenas); 
    } 
}); 
+0

맞다. 나는 정의되지 않는다. 당신의 추천으로, 성공 함수는 절대로 실행되지 않으므로 경고는 발생하지 않습니다. –

1

당신은 구문 오류가

$.ajax({ 
    url:"myscript.php", 
    dataType: "json", 
    success:function(data){ 
     alert(data.cenas); 
    } 
}); 

보십시오.

체크 아웃 Docs for $.ajax

+4

응답/데이터는 중요하지 않습니다. 매개 변수 이름 일뿐입니다. 그들은 임의적입니다. 당신은 x라는 이름을 붙이면 괜찮을 것입니다. –

+0

Wicked, 제가 알아서하겠습니다. 100 % 확신하지 못했습니다. –

1

당신은 (... jQuery를 올바르게이 추측 할 수 있지만) jQuery를 응답에 JSON을 기대 (구문 분석)을 알려 주어야하고 올바르게 자바 스크립트를 작성해야 :

$.ajax({ 
    url: 'myscript.php', 
    dataType: 'json', 
    success: function(response){ 
     alert(response.cenas); 
    } 
}); 
+0

감사합니다. 방금 내 질문을 편집했습니다. dataType : ajax 호출에서 'json'을 포함합니다. –

+0

@NunoNogueira 아약스 호출의 차이점을 확인하십시오 (함수의 괄호, 문자열 인용 등). – jeroen

+0

나는 그것을 정의하지 않는다. –