0

我在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);
            }
        });
    });
});
4

1 回答 1

1

你有两种可能:

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

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

于 2012-09-03T22:47:52.633 回答