2011-12-22 2 views
0

나는이 있습니다내 반환 함수 내 jQuery를 아약스와 함께 작동하지 않습니다

(오류가 발견되는 경우) mysql_lib.php 파일은 다음과 같은 라인이
$("#upvote").click(function(){ 
    var up = parseInt(document.getElementById('voteScore').innerHTML); 
    up++; 
    document.getElementById('voteScore').innerHTML = up; 
    $.ajax({ 
      type: 'POST', 
     url: 'include/mysql_lib.php', 
     data: {'data[]':['upvote','<?php echo $id; ?>', '<?php echo $uid; ?>']}, 
     dataType: "text", 
     success: function(dataType) { 
       if (dataType == "false") { 
        var up = parseInt(document.getElementById('voteScore').innerHTML); 
        up--; 
        document.getElementById('voteScore').innerHTML = up; 
       } 
     } 
    }); 
}); 

:

return "false";

을 내가 도대체 ​​뭘 잘못하고있는 겁니까? 전에 jQuery를 사용한 적이 없습니다.

+0

전처리 된 PHP 코드처럼 붙여 넣었습니다. 출력물을 브라우저에 붙여 넣으십시오. –

+3

'die ('false')'또는'echo 'false''는'false'를 반환하지 않습니다. –

답변

4

AJAX 함수의 서버 응답 (코드의 'dataType'변수)은 PHP 스크립트가 서버에 쓴 모든 내용을 저장합니다. PHP 스크립트에서 return "false"이 함수에서 문자열을 반환하지만 JavaScript에서 값을 가져 오려면 echo "false"을 사용해야 서버의 JavaScript 응답이 false이됩니다. 이 같은 문제에 실행하는 경우

function test() { 
    //do some work 
    return "false"; 
} 
echo test();//this will output "false" to the browser 

function test() { 
    echo "false";//this will output "false" to the browser 
} 

는 당신의 PHP로 출력되는이 무엇인지 확인하기 위해 AJAX 콜백 함수 내에서 console.log(dataType) 또는 alert(dataType)을 넣어하는 것이 좋습니다. PHP 스크립트의 응답은 FireBug와 같은 대부분의 개발자 도구에서도 볼 수 있습니다.

그리고 제안 사항. PHP 스크립트에서 좀 더 복잡한 정보를 출력하려면 PHP json_encode() 함수를 사용하십시오.이 함수는 PHP와 JavaScript 간의 통 신을 어렵게 만듭니다.

관련 문제