我的返回函数不能与jQuery ajax一起工作


My return functions isn't working with my 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

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
}

当遇到这样的问题时,最好将console.log(dataType)alert(dataType)放入AJAX回调函数中,以查看PHP正在输出的内容。PHP脚本的响应也可以在大多数开发工具(如FireBug)中查看。

给你一个建议。如果您想从PHP脚本输出更复杂的信息,可以看看PHP的json_encode()函数,它使PHP和JavaScript之间的通信变得轻松。