2015-11-29 24 views
0

我開發了一個購物網站,我正在使用ajax處理添加到購物車並從購物車中刪除。添加到購物車工作正常,但從購物車中刪除正在創建一個奇怪的問題。我能夠從中刪除一條記錄,如果我想刪除更多,我需要手動刷新頁面,然後我將能夠刪除多一個。這很奇怪,我無法找到錯誤的地方。無法刪除多個購物車項目

這裏是代碼:

jQuery('.remove').click(function(data) { 

    var pi = jQuery(this).attr('name'); 
     var y = jQuery(this).attr('name'); 

    $.ajax({ 
       url: "delcart.php?pid="+pi+"&data="+y, 
       type: 'GET', 
       success: function(s){ 
        var $container = $("#content"); 
     // $container.refresh("index.php"); 
$("#content").load(location.href + " #content"); 
$("#success2").show().fadeOut(6000); 
       }, 
       error: function(e){ 
        alert('Error Processing your Request!!'); 
       } 
      }); 

}); 

HTML按鈕。

<button name="<?php echo $ca['ID'];?>" class="remove close_product color_dark tr_hover">x</button> 

此按鈕進入while循環,每次名稱屬性由數據庫購物車表的唯一ID組成。

這裏是delcart.php:

<?php 
include_once "config.php"; 
$id = $_GET['pid']; 
$ip = $_SERVER['REMOTE_ADDR']; 

$de = mysqli_query($con,"DELETE from cart where ID='{$id}' and ip='{$ip}'"); 
?> 

誰能請圖什麼我錯過了或者錯誤的。這將是一個巨大的幫助。提前致謝。

+0

在您的瀏覽器devTools上查找錯誤,請按F12 –

+0

ajax調用可能會被緩存。你應該使用帖子並在你的帖子數據中附加一個隨機數字。 '&rand =(js創建的隨機數)'這會阻止呼叫被緩存。 – VIDesignz

回答

1

不知道我是否有解決方案,但我想這是值得一試。 我的猜測是你的按鈕刪除類位於div與容器的id,正確的位置?

如果是這樣,那麼當您調用替換#container div的內容的.load函數時,您將「丟失」.click處理程序。

的解決辦法(可能)會改變。點擊收聽到某事像

$('#some-div-container-that-stays').on("click", ".remove", function(data) { 

,或者至少試圖把一個的console.log()進入。點擊動作,看它是否觸發或不是

+0

先生,您是正確的...它正在失去.click處理程序,因爲這一行:$(「#content」)。load(location.href +「#content」); ....這條線的任何替代將解決我的問題。請幫忙。謝謝 –

+0

解決方案是使用一個容器div,然後用類過濾器附加.on()點擊函數(這樣,當你更新#content div的內容時,點擊觸發器/處理程序仍然保留) 示例 將div #container(包裝您的#content div)添加到您的標記 ,然後僅使用 $(「#container」)。on(「click」,「。remove」,function(data){.. 。 – flynorc