Перейти к содержанию
Официальный форум поддержки Simpla

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


Рекомендуемые сообщения

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

{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}     

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

Ссылка на сообщение
Поделиться на другие сайты

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

Возможно создать для каждой текстовки свой шаблон и в 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
	);
Ссылка на сообщение
Поделиться на другие сайты

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

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

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

В корзине код

<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
);

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

Ссылка на сообщение
Поделиться на другие сайты

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

// Обновление информера корзины
        //----------------------------------------//
        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;
                    }
                }
            });
        };
Ссылка на сообщение
Поделиться на другие сайты

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

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

Позор!

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

Ссылка на сообщение
Поделиться на другие сайты

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

Позор!

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

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

Ссылка на сообщение
Поделиться на другие сайты

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

Позор!

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

 

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

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

 

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

 

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

Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

 

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

 

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

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...