Jump to content

Обновление корзины при изменении кол-ва товара


Recommended Posts

Всем привет. На сайте реализована всплывающее окно с корзиной и в шаблоне корзины имеется следующая конструкция:

{if $cart->total_products >= 5}
    <span id="cart_total" style="font-size: 22px;color: #ff3f3f;">+ БЕСПЛАТНАЯ ДОСТАВКА<span>
{/if} 
{if $cart->total_products < 5}
    <span id="cart_total">*Менее 5-ти позиций, <b>доставка - 300 руб.</b><span>
{/if}     

Прошу помощи как сделать обновление этой информации при изменении кол-ва без перезагрузки всего сайта.

Link to post
Share on other sites

Как минимум нужна ссылка на сайт.

Возможно создать для каждой текстовки свой шаблон и в cart_update.php по аналогии обрабатывать?

$result = array('cart_item_total'=>$simpla->design->fetch('cart_item_total.tpl'),
					'cart_total'=>$simpla->design->fetch('cart_total.tpl'), 
					'cart_mini'=>$simpla->design->fetch('cart_mini.tpl'),
					'cart_coupon'=>$simpla->design->fetch('cart_coupon.tpl'),
					'coupon_status'=>$coupon_result,
					'coupon_result'=>$simpla->design->fetch('cart_coupon_result.tpl'),
					'total_products'=>$cart->total_products
	);
Link to post
Share on other sites

Возможно создать для каждой текстовки свой шаблон и в cart_update.php по аналогии обрабатывать?

Именно так и надо делать, по аналогии с уже обновляющимися блоками...
Link to post
Share on other sites

Что то делаю видимо не так.

В корзине код

<span id="cart_delivery">{include file='cart_delivery.tpl'}</span>

cart_delivery.tpl

{if $cart->total_products >= 5}
			<span style="font-size: 22px;color: #ff3f3f;">+ БЕСПЛАТНАЯ ДОСТАВКА<span>
{else}
            <span>*Менее 5-ти позиций, <b>доставка - 300 руб.</b><span>
{/if}

cart_update.php

$result = array('cart_item_total'=>$simpla->design->fetch('cart_item_total.tpl'),
					'cart_total'=>$simpla->design->fetch('cart_total.tpl'), 
					'cart_delivery'=>$simpla->design->fetch('cart_delivery.tpl'), 
					'cart_mini'=>$simpla->design->fetch('cart_mini.tpl'),
					'cart_coupon'=>$simpla->design->fetch('cart_coupon.tpl'),
					'coupon_status'=>$coupon_result,
					'coupon_result'=>$simpla->design->fetch('cart_coupon_result.tpl'),
					'total_products'=>$cart->total_products
);

Подскажите, что не учел?

Link to post
Share on other sites

Так же в скрипте везде добавил по аналогии

// Обновление информера корзины
        //----------------------------------------//
        function update_cart(variant_id, amount) {
            var coupon_code = $("#coupon_code").val();
            $.ajax({
                url: "ajax/cart_update.php",
                data: {
                    'variant_id': variant_id,
                    'amount': amount,
                    'coupon_code': coupon_code
                },
                success: function(data) {
                    if (data) {
                        if (data.total_products == 0) {
                            $('#purchases').find('.Popup_top').remove();
                            $('#purchases').html('<div class="Popup_bottom">Ваша корзина пуста!</div>');
                            $('#cart_mini').html(data.cart_mini);
                        } else {
                            $('.cart_item_total_' + variant_id).html(data.cart_item_total);
                            $('#cart_total').html(data.cart_total);
							$('#cart_delivery').html(data.cart_delivery);
                            $('#cart_mini').html(data.cart_mini);
                            $('#cart_coupon').html(data.cart_coupon);
                            $('#coupon_result').html(data.coupon_result);
                            if ( data.coupon_status == 'success' ) {
                                $('#cart_coupon').parent().removeClass('hidden')
                            } else {
                                $('#cart_coupon').parent().addClass('hidden')
                            }
                        }
                        return false;
                    }
                }
            });
        };
Link to post
Share on other sites

Именно так и надо делать, по аналогии с уже обновляющимися блоками...

И это советует корс - царь программирования...

Позор!

Нужно данные отправлять json-ом без шаблонов, потом с помощью JS нужные данные вставлять в нужные места, а не вот такое рукоблудство.

Link to post
Share on other sites

И это советует корс - царь программирования...

Позор!

Нужно данные отправлять json-ом без шаблонов, потом с помощью JS нужные данные вставлять в нужные места, а не вот такое рукоблудство.

Noxter, есть примеры реализации?

Link to post
Share on other sites

И это советует корс - царь программирования...

Позор!

Нужно данные отправлять json-ом без шаблонов, потом с помощью JS нужные данные вставлять в нужные места, а не вот такое рукоблудство.

 

Не переживайте так, дяденька Noxter.

Ваше объяснение теоретически правильно. Но с практической точки для ТС не только совершенно бесполезно, но даже вредно, по-моему.

 

Вы совершенно не виноваты в том, что не заметили, что у ТС в текущих файлах есть все нужные примеры того, как через AJAX за один запрос можно обновлять сразу несколько мест на странице. И ему совсем не надо рыскать по Сети, все примеры у него под рукой. Такие примеры давным-давно известны, например, много лет уже такой прием используется в шаблоне trizzy. Если он Вам неизвестен, ничего страшного, не волнуйтесь, берегите здоровье...

 

И для того, чтоб дать такой абстрактый совет, как Вы дали, совсем не обязательно было знать адрес сайта...

Link to post
Share on other sites

Вот именно, ленивые и малоопытные именно так и делают, потому как так сделал Пикусов, унаследовали так сказать у него эту лень или недоопыт. Сами то думать не хотят, по этому и не делают оптимально, а делают лишь бы работало.

Все эти прёмы мне давно известны и все они одинаковые, простой копипаст кода не более того. Но тебе Корс этого никак не понять, ведь ты же не отличаешь файлы от классов, ты не обучаем, морально и физически устарел.

О чём тут можно говорить?

Link to post
Share on other sites

Вот именно, ленивые и малоопытные именно так и делают, потому как так сделал Пикусов, унаследовали так сказать у него эту лень или недоопыт.

Вы совершенно правы, так действительно делают и ленивые и малоопытные. Потому как у них задача стоит чтоб работало правильно. А то, что у них некрасивый длинный код, в то время, как какой-нибудь мастер Noxter мог бы написать красивый короткий код, их обычно не волнует. Таково уж мышление у многих людей...

 

Сами то думать не хотят, по этому и не делают оптимально, а делают лишь бы работало.

 

Опять Вы правы, они для того и используют готовую CMS, чтоб меньше самим думать. И призывать их изобретать свой велосипед, как Вы частенько делаете, явно бесперспективно...

 

Вы ведь не расписываете для них правильный код. А даже если они сами будут по Вашему совету искать в Сети, то им отличить хороший код от плохого практически невозможно. Тут нужны большие скилы...

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...