Opencart-即时更新购物车中的数量



对于标准的opencart行为,在购物车中添加产品后,用户需要手动点击更新按钮进行数量更新。样品请参考http://demo.opencart.com/.但是,我想更改为当我更改数量时,可以立即刷新购物车信息。我尝试了以下代码,但它不起作用:

  1. 对于catalog/view/theme/default/template/checkout/cart.tpl,我更新了:

button type="submit"data toggle="tooltip"title="class="btn-btn-primary">i class="fa fa refresh">/button>

(不知道为什么我不能正确地将代码粘贴到上面的行上。我删除了一些<以使其显示)

<button type="button" data-toggle="tooltip" title="<?php echo $button_update; ?>" class="btn btn-primary" onchange="cart.update('<?php echo $product['key']; ?>', '<?php echo $product['quantity']; ?>');"><i class="fa fa-refresh"></i></button>
  1. 在catalog/view/javascript/common.js中

有一个功能

var cart = {
  //skip some lines for other function
    'update': function(key, quantity) {
        $.ajax({
            url: 'index.php?route=checkout/cart/edit',
            type: 'post',
            data: 'key=' + key + '&quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1),
            dataType: 'json',
            beforeSend: function() {
                $('#cart > button').button('loading');
            },
            complete: function() {
                $('#cart > button').button('reset');
            },          
            success: function(json) {
                // Need to set timeout otherwise it wont update the total
                setTimeout(function () {
                    $('#cart > button').html('<img src="image/catalog/content/cart/quote-icon.png" alt="quote"><span class="badge badge-giftu rounded-x">' + json['totallines'] + '</span>');
                }, 100);
                if (getURLVar('route') == 'checkout/cart' || getURLVar('route') == 'checkout/checkout') {
                    $('#cart > ul').load('index.php?route=common/cart/info ul li');
                } else {
                    $('#cart > ul').load('index.php?route=common/cart/info ul li');
                }
            }
        });
    },
}

我试过了,如果我在on.change函数下改为cart.remove,它会起作用。然而,它不适用于cart.udate。有人知道触发ajax更新问题的原因吗?

我自己也有这样一个问题,像这个一样解决了它

旧代码(我自定义了它们):

<input type="text" name="quantity[<?php echo $product['key']; ?>]" value="<?php echo $product['quantity']; ?>" size="1" class="form-control"/>
<span class="input-group-btn">
<button type="submit" data-toggle="tooltip" title="<?php echo $button_update; ?>" class="btn btn-primary"><i class="fa fa-refresh"></i></button>
<button type="button" data-toggle="tooltip" title="<?php echo $button_remove; ?>" class="btn btn-danger"
        onclick="cart.remove('<?php echo $product['key']; ?>');"><i class="fa fa-times-circle"></i></button>

新代码(固定)查看输入并删除(按钮类型="按钮"如果他也不工作)

<input type="text" name="quantity[<?php echo $product['cart_id']; ?>]" value="<?php echo $product['quantity']; ?>" 
       size="1" class="form-control"/>
<span class="input-group-btn">
    <button type="submit" data-toggle="tooltip" title="<?php echo $button_update; ?>" 
            class="btn btn-primary"><i class="fa fa-refresh"></i></button>
    <button type="button" data-toggle="tooltip" title="<?php echo $button_remove; ?>" class="btn btn-danger"
            onclick="cart.remove('<?php echo $product['cart_id']; ?>');"><i class="fa fa-times-circle"></i></button>

有一个问题,错误地给出了字段的符号,需要将键放在cart_id 中

最新更新