如何在CodeIgniter中调整购物车


How to ajaxify a shopping cart in CodeIgniter

我在对CodeIgniter中内置的购物车进行Ajaxing时遇到问题。当用户单击项目下拉菜单上的添加按钮时,该项目将通过Ajax回调函数添加到名为#cart的div中。但是,我的问题是,在cart-div中通过Ajax生成的内容不是永久性的(因为这是在客户端完成的)。有没有一种方法可以在仍然使用Ajax的情况下使cart HTML输出永久化?

虽然我的Ajax调用是从我的控制器输出内容,但我检查了视图源代码,上面实际上没有html元素

$(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);
            }
        });
    });
});

您有两种可能性:

  • 将来自Ajax的响应存储在CodeIgniter会话中。这意味着你将能够在刷新时验证会话并重新填充购物车
  • 将来自Ajax的响应存储在临时数据库表中。。。并且再次,刷新时,从数据库中重新填充购物车

一般事实:您永远无法通过查看源代码来查看Ajax的响应。您必须使用浏览器检查器查看响应(例如,Google Chrome中网络选项卡上的XHR响应)。在那里,您将看到通过Ajax为您输出的URL。