当我点击它时,这个javascript函数工作正常,但是当我点击它两次时它不起作用

时间:2014-01-27 20:05:01

标签: javascript php ajax

我正在开发一个小项目,其中包括将用户添加为朋友。所以我创建了一个ajax程序来处理显示用户友谊的状态(即他是否是其他用户的朋友),如果你不是朋友,你可以立即添加他。所以我做了一个小按钮来完成我之前提到的功能。只要我点击一次按钮就可以正常工作,但是当我点击它两次时它就不起作用了。你能帮助我吗?

function addFriend(user) {
userName = user.getAttribute('data-username') ; 
xmlHttp.open("GET",'addFriend.php?user=' + userName,true) ; 
xmlHttp.send() ; 
xmlHttp.onreadystatechange = function() {
    if(xmlHttp.readyState == 4 && xmlHttp.status == 200) {
        serverResponse = xmlHttp.responseText ;
        alert(serverResponse) ;  
        if(serverResponse = 'FriendHasBeenDeleted') {
            user.innerHTML = 'Not your amigo' ;
            user.className = 'FriendsONno' ;
        }


        if(serverResponse = 'Added') { 
            user.innerHTML = 'Your Amigo' ;
            user.className = 'FriendsONyes' ;
        }       
    } 
    else {

    }
}

}

php文件工作正常,并回应两件事。一个是'FriendHasBeenDeleted',另一个是'已添加' 但是,当单击按钮两次时,javascript文件不会执行任何操作

1 个答案:

答案 0 :(得分:2)

您正在分配,而不是比较

if(serverResponse = 'FriendHasBeenDeleted') 
if(serverResponse = 'Added') { 

需要

if(serverResponse === 'FriendHasBeenDeleted') 
if(serverResponse === 'Added') { 

现在另一个问题是GET请求缓存。因此,当您第一次返回值时向服务器发送请求时。当您再次请求它时,它只是重用该值。由于您实际上正在更新数据库,因此最好使用POST请求。发布请求不会缓存。