2014-09-03 3 views
0

나는 AJAX 호출에서 고군분투하여 반환 값을 읽도록했습니다. 내 PHP 코드는 false 또는 true과 함께 자동으로 에코를 반환하며 메일을 보냈는지 확인했습니다. 그러나 나는 가치를 읽고 그것을 작동 시키려 애 쓰고있다. 당신이 그것을 확인 해야할지하지 않기 때문에 그것의 if 문을 통과하지 못한 원인, 그것은 끊임없이 다른 문을 밀어 것입니다 그림과 같이PHP를 출력하는 방법?

여기에 내 AJAX 코드

if(proceed == true){    
    $.ajax({ 
     type : 'POST', 
     url  : 'inc/actions/sendmail.php', 
     data : $('#sentMessage').serialize(), 
     cache : false, 
     dataType: 'text', 
     success : function (data) 
     { 
      if (data == 'true'){ 
       $("#sentMessage")[0].reset(); 
       $("#err").append("<div class='alert alert-success' role='alert'>Bedankt voor je bericht, wij nemen binnenkort contact met je op.</div>"); 
       $('input[name=name]').css('border-color','') 
       $('input[name=email]').css('border-color','') 
       $('textarea[name=message]').css('border-color','') 
       setTimeout(function(){$('#err').fadeOut();}, 5000); 
      }else{ 
       $("#err").append("<div class='alert alert-danger' role='alert'>Je telefoonnummer bestaat niet uit 10 cijfers.</div>"); 
       $('input[name=phone]').css({'border':'2px solid red'}); 
       setTimeout(function(){$('#err').fadeOut();}, 5000); 
      } 
     }, 
     error : function (jqXHR, textStatus, errorThrown) {console.log(errorThrown);} 
    }); 
} 

입니다.

+3

을 console.log (데이터)를 추가; 조건부 직전에. 그런 다음 데이터 개체의 결과를 검사하십시오. 기회는 단순한 부울이 아닙니다. 부울 인 경우 if (data == 'true') 대신 if (data)로 조건부를 변경하십시오. –

+0

반환되는 것을 볼 수 있도록'console.log (data);'를'success' 핸들러의 첫 번째 명령문으로 사용하십시오. 당신은'if (data.trim() == 'true') ... '를 사용해야 할 수도 있습니다. – PeterKA

+0

이 질문/대답이 당신을 도울 수 있습니다 : http://stackoverflow.com/questions/4948663/php- get-bool-to-echo-false-when-false – Mindastic

답변

2

PHP 스크립트에서 출력되는 내용이 모두 true/false인데도 console.log(data) 출력이 true/false임을 확인한 후에도 문자열 주위에 공백이있을 수 있습니다. 따라서 당신은 사용할 수 있습니다 :

if(data.trim() == 'true') { .... 

if(data.indexOf('true') > -1) { ..... //<=== OR 

그냥 당신이 사용할 수 있습니다, 확인합니다 :

console.log("'" + data + "'"); 
+0

그 트릭을했는데, 실제로 거기에 공백이 관련되어 있다고 생각합니다. 나는 그것을 위해 PHP 파일을 검사 할 것이다. – Dorvalla

0

서버가 반환하는 것을 정확하게 확인하려면 console.log (데이터)를 시도해야합니다. 또한 반환되는 객체가 변경되었으므로 console.log (JSON.stringify (data))가 필요할 수 있습니다.

또한 이것은 아마도 관련이 없지만 항상 트리플 등호 (===)를 사용해야하며 JavaScript에서는 우수 사례입니다.

관련 문제