2012-09-03 66 views
0

我遇到問題Ajaxifying內置CodeIgniter的購物車。當用戶在項目的下拉菜單上單擊添加按鈕時,該項目將通過Ajax回調函數添加到名爲#cart的div中。但是,我的問題是,在購物車div中通過Ajax生成的內容不是永久的(因爲這是在客戶端完成的)。有沒有辦法在仍使用Ajax的情況下使購物車HTML輸出永久?如何在CodeIgniter中禁用購物車

雖然我的Ajax調用outputing從我的控制器的內容,我檢查了查看源代碼,實際上沒有對it.Here沒有HTML元素是我的Ajax調用:

$(document).ready(function() { 
    $('.add').click(function(){ 
     var button =$(this).val(); 
     var button = button.split(','); 
     var url=<?php echo '"' . base_url() . 'index.php/order_form/add/"' ?>+button[0]+'/'+button[1]; 
     var quantity=$('#quantity-'+button[0]).val(); 

     $.ajax({ 
      url: url, 
      data:'quantity='+quantity, 
      dataType: 'html', 
      success: function(output_string){ 
       $('#cart').empty().append(output_string); 
      } 
     }); 
    }); 
}); 
+0

您是否嘗試過存儲cookie或會話?因此CI可以「記住」哪些項目被選中。 – Gntem

回答

1

你有兩種可能性:

  • 將來自Ajax的響應存儲在CodeIgniter會話中。這意味着您將會在 的驗證會話刷新和重新購物車。
  • 將來自Ajax的響應存儲在臨時數據庫表中......並且在刷新時再次登錄 ,從數據庫重新填充購物車。

一般事實:您將永遠無法通過查看源代碼來查看Ajax的響應。您將必須在瀏覽器檢查器處看到響應(例如,在Google Chrome的網絡選項卡上的XHR響應)。在那裏你會看到通過Ajax爲你輸入了什麼URL。

+0

我將值存儲在CL的購物車類中(使用自定義會話類數據庫)。我的問題是,當用戶更改購物車中的數量值時,我希望它可以更新,而無需刷新頁面。 – user1424508

相關問題