Opencart - jQuery cart总更新 - 修改输出

时间:2012-05-07 10:20:53

标签: javascript jquery opencart

在product.tpl中运行最新版本的OpenCart,底部的javascript中有以下代码行:

$('#cart-total').html(json['total']);

这一行更新了购物车总额而无需重新加载页面,因此$('#cart-total').html(json['total']);输出<span id="cart-total">6 item(s) - $693.50</span>

但是,我已经定制了cart.tpl模块和cart.php语言文件,以稍微不同的方式显示购物车输出,以便输出如下:

<span id="cart-total">
     <div class="mini-cart-items">6 Items</div>
     <div class="mini-cart-total">Your total is $693.50</div>
</span>

因此,出于某种原因,当$('#cart-total').html(json['total']);更新购物车总数时,它会移除我在其中的两个div,只显示没有我设置的格式的信息。

是否可以更新javascript以便它不会删除信息?

如果上下文需要,我可以提供更多代码。

EDTI:这是$('#cart-total').html(json['total']);所在的整个javascript部分:

if (json['success']) {
                $('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');

                $('.success').fadeIn('slow');

                $('#cart-total').html(json['total']);

                $('html, body').animate({ scrollTop: 0 }, 'slow'); 
            }

当前代码,编辑如下:

        if (json['success']) {
            $('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');

            $('.success').fadeIn('slow');

            console.log(json['total']);
            var output = $(json['total']).text().split('-');
            $('.mini-cart-items').html(output[0]);
            $('.mini-cart-total').html('Your total is ' + output[1]);

            $('html, body').animate({ scrollTop: 0 }, 'slow'); 
        }       

4 个答案:

答案 0 :(得分:2)

如果json['total']只包含数字金额,那么您可以尝试:

$('#cart-total .mini-cart-total').empty().html('Your total is $' + json['total']);

根据你的编辑:

var output = $(json['total']).text().split('-');

$('.mini-cart-items').html(output[0]);
$('.mini-cart-total').html('Your total is ' + output[1]);

DEMO

答案 1 :(得分:2)

我也不知所措,我找到了如何解决问题。

如何工作json ['total']我在目录/ controller / checkout / cart.php中找到

$json['total'] = sprintf($this->language->get('text_items') .......

但它并不那么重要, 'text_items'放在两个地方

catalog/language/russian/module/cart.php

catalog/language/russian/checkout/cart.php

非常有趣,首先使用模块文件结帐文件与json一起使用

这是我的'text_items',我把它放在两个语言文件中

// Text
$_['text_items'] = 'In cart: <div class="header-product">%s product</div> summ %s';

答案 2 :(得分:0)

以上作品,你总能给你的div一个id

<div id="mini-cart-total" class="mini-cart-total">Your total is $574.00</div>
在你的脚本中

$('#mini-cart-total').html(json['total']);

在一天结束时,$('#id')。html(str)用你传入的内容替换id中的所有html。

答案 3 :(得分:0)

我已经解决了这个问题

setTimeout(function(){
  $('#cart-total').html('Your total is $' + json['total']); 
}, 100);

只需添加延迟