如何在CodeIgniter中ajaxify购物车

时间:2012-09-03 19:05:29

标签: php jquery ajax codeigniter shopping

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

虽然我的Ajax调用是从我的控制器输出内容,但我检查了视图源,并且实际上没有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);
            }
        });
    });
});

1 个答案:

答案 0 :(得分:1)

您有两种可能性:

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

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