我的返回函数不适用于我的jQuery ajax

时间:2011-12-22 18:58:00

标签: php jquery ajax return

我有这个:

$("#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。

1 个答案:

答案 0 :(得分:4)

AJAX函数的服务器响应(代码中的'dataType'变量)存储您的PHP脚本写出到服务器的任何内容。在你的PHP脚本中,如果你return "false"将从函数返回一个字符串,但如果你想在JavaScript中获取值,你应该使用echo "false",这样来自服务器的JavaScript响应将是{ {1}}。

false

遇到这样的问题时,最好在AJAX回调函数中放置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),以查看PHP输出的内容。您可以在大多数开发人员工具(如FireBug)中查看PHP脚本的响应。

并建议你。如果您想从PHP脚本中输出更复杂的信息,请查看PHP json_encode()函数,该函数使PHP和JavaScript之间的通信无痛。