2017-02-17 1 views
0

안녕 여러분, 꽤 당황 스럽습니다. PHP에서 자바 스크립트로 문자열 변수를 반환합니다. 거기서 나는 간단한 비교를하고 그에 따라 행동을 취하고 싶지만 그 결과는 기대와 다르다.PHP에서 반환 된 텍스트와 자바 스크립트를 비교하십시오.

먼저 내가 처리 할 PHP 자바 스크립트 파일에 양식을 게시합니다.

$('#matchForm3').submit(function (event) { 
    var pr = $('#cprovider3').val(); 
    var amount = $('#camount3').val(); 
    var ctc = $('#ctc3').val(); 

    var formData = {'cprovider': pr, 'camount': amount, 'ctc': ctc, 'creceiver': rc3, 'ramount': ramount3}; 

    $.ajax({ 
     url: '/backend/matchForm.php', 
     type: 'post', 
     data: formData, 
     success: matchResponce, 
     error: function (xhr, desc, err) { 
      alert(xhr); 
      return false; 
     } 
    }); 

    return false; 

}); 

function matchResponce(data, status) { 
    //alert(data); 
    if (data != 'legit') { 
     //do something 
    }else { 
     //do something else 
    } 
} 

그리고 나서 matchForm.php 파일에서 처리를 수행하여 "legit"또는 "no no"중 가능한 값을 반환합니다.

//do something up here 

if(value == true){ 
    echo 'legit'; 
}else{ 
    echo 'no no'; 
} 

이제 콜백 메소드 인 matchResponce()의 script.js 파일로 되돌아갑니다. 나는 그 검사를하고 그에 따라 행동하고 싶지만 데이터가 다르더라도 매번 첫 번째 조건을 충족시킵니다. 미리 감사드립니다 !!

+2

js 함수에서 데이터를 덤프하고 (값) 이미 반환 된 값인 –

+0

을 확인하십시오. 또한 문자열 비교를 위해 === 및! ==를 사용하십시오. PHP 코드 외부에 공간이 있습니까? (실수로 자주 실수 한 경우) –

+0

JavaScript로 반환 된 데이터를 보려면 메시지를 텍스트로 변환하는'alert()'대신'console.log (data);를 사용하십시오. 그것은 텍스트 (문자열), JSON, XML, 또는 당신이받은 것과 같은 것을 가지고 있는지 보여줄 것입니다. –

답변

0

문자열 값을 반환하지 않고 대신 정수를 반환하는 것이 좋습니다. 문자열 값은 숫자가 아닌 사용자 입력 오류가 발생하기 쉽습니다. 시도해보십시오.

if($myProcess) { 
    echo 1; 
} else { 
    echo 0; 
} 

matchForm.php의 return 문으로 사용하십시오. 이렇게하면 프로세스가 'true'로 평가되고 '1'또는 'false'를 에코하고 '0'을 에코합니다. 여기에서

function matchResponce(data, status) { 
    //alert(data); 
    if (data == 1) { 
    //do something 
    }else { 
    //do something else 
    } 
} 

은 반품 및 전진을 확인합니다.

+0

시도했지만 예상대로 작동하지 않았습니다. 각각의 경우에 첫 번째 조건이 충족되므로, 나는 단지 "무언가를한다". "다른 것"을하지 마십시오. –

+0

코드가 어딘가에서 엉망이 된 것처럼 들립니다. 강제로 실패 할 수 있습니까? – bowl0stu

0

정수 변수와 비교하기 전에 변수 데이터를 먼저 정수로 변환해야만했습니다. 이는 피연산자가 모두 같은 정수 유형이 아닌지 확인하기위한 것입니다. 이제 이것이 matchResponce()와 같은 콜백 함수입니다.

function matchResponce(data, status) { 

    var h = parseInt(data); 
    //alert(h); 
    if (data == 0) { 
     //do something 
    } else (data == 2) { 
     //do something else 
    } 

} 
관련 문제