2013-02-20 91 views
0

我有一個鏈接,如果點擊或查詢從數據庫是真實的圖標會顯示一個完整的心臟和信息像這樣保存在數據庫中:收藏夾按鈕withXMLHttpRequest

<a id="fav" href="#"><i <?if($fe == 1){?>class="faved"<?}else{?>class="fav"<?}?>></i></a> 

$("#fav i.fav").click(function(){ 
       fav= new XMLHttpRequest(); 
       fav.open("GET", "http://test.php?u=<?=$user_id?>", true); 
       fav.send(); 
       $("#fav i").removeClass('fav').addClass('faved'); 
      }); 

      $("#fav i.faved").click(function(){ 
       fav= new XMLHttpRequest(); 
       fav.open("GET", "http://test.php?u=<?=$user_id?>", true); 
       fav.send(); 
       $("#fav i").removeClass('faved').addClass('fav'); 
      }); 

目前,它的偉大工程,但我遇到的問題是,如果用戶決定不喜歡頁面,它會保存另一個記錄或嘗試根據當前狀態再次刪除。我如何根據狀態切換它。例如,如果它沒有收藏,點擊它保存到數據庫,並且不刷新,再次點擊它從數據庫中刪除。

UPDATE

我也有鏈接的行動告訴我的PHP來刪除或保存記錄。 例如:http://test.php?u=<?=$user_id?>a=1(保存)http://test.php?u=<?=$user_id?>a=2(刪除)

ANSWER

基於關閉@ epascarello的回答。

$("#fav").on("click", "i.fav", function(){ 
       var icon = $(this); 
       var makeFavorite = icon.hasClass("fav"); 
       $.post("http://test.php&u=<?=$user_id?>&a=1",{isFav:makeFavorite}, function(){ 
        icon.toggleClass("fav").toggleClass("faved"); 
       }); 
      }); 



$("#fav").on("click", "i.faved", function(){ 
      var icon = $(this); 
      var delFavorite = icon.hasClass("faved"); 
      $.post("http://test.php&u=<?=$user_id?>&a=2",{isFav:delFavorite}, function(){ 
       icon.toggleClass("faved").toggleClass("fav"); 
      }); 
     }); 
+0

如果你使用jQuery,爲什麼不使用'jQuery.get()'或其他助手之一? http://api.jquery.com/category/ajax/ – 2013-02-20 20:26:14

+0

這是你必須檢查服務器端而不是客戶端。 – PeeHaa 2013-02-20 20:28:50

回答

0

讓它成爲一個呼叫而不是兩個。這是相同的邏輯,只是做檢查! [假設你正在使用jQuery]

$("#fav").on("click", "i.fav, i.faved", function(){ 
    var icon = $(this); 
    var makeFavorite = icon.hasClass("fav"); 
    $.post("http://test.php?u=<?=$user_id?>",{isFav:makeFavorite}, function(){ 
     icon.toggleClass("fav").toggleClass("faved"); 
    }); 
}); 
+0

嗯,我有一個檢查稱爲,如果它等於1它保存和2它從我的數據庫刪除。我如何將它添加到您的版本中的鏈接? http://test.php?u = a = 1 – shayward 2013-02-20 20:48:20

+0

想通了!謝謝 – shayward 2013-02-20 21:26:45

+0

我是在相同的結果後,我使用的jQuery的移動,shayward,你可以請發佈的工作代碼添加到收藏夾和數據庫結構應該是什麼?謝謝 – xzibit 2014-07-17 14:20:11