2011-12-22 15 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代碼。請粘貼輸出 - 發送給瀏覽器的輸出。 – 2011-12-22 18:59:52

+3

'die('false')'或'echo'false''可能不會幫助'return'false'' – 2011-12-22 19:00:37

回答

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 
} 

當運行到這樣的問題,它是把一個console.log(dataType)alert(dataType)您的AJAX回調函數裏面,看看有什麼是你的PHP是輸出一個好主意。您的PHP腳本的響應也可以在大多數開發人員工具(如FireBug)中查看。

並建議雅。如果您想從PHP腳本中輸出更復雜的信息,請查看PHP json_encode()函數,該函數使PHP和JavaScript之間的通信變得無痛苦。