2011-12-22 23 views
0

で作業されていません。私のリターン機能は、私はこれを持って私のjQueryのAJAX

$("#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; 
       } 
     } 
    }); 
}); 

mysql_lib.phpファイル(エラーが発見された場合)は、このような行があります。

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とJavaScriptの間の通信を無駄にするPHP json_encode()関数を見てください。

関連する問題