interyes Posted January 26, 2019 Report Share Posted January 26, 2019 Всем привет. На сайте реализована всплывающее окно с корзиной и в шаблоне корзины имеется следующая конструкция: {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} Прошу помощи как сделать обновление этой информации при изменении кол-ва без перезагрузки всего сайта. Quote Link to post Share on other sites
Noxter Posted January 26, 2019 Report Share Posted January 26, 2019 Как минимум нужна ссылка на сайт. Quote Link to post Share on other sites
interyes Posted January 26, 2019 Author Report Share Posted January 26, 2019 (edited) Как минимум нужна ссылка на сайт.... Edited January 26, 2019 by interyes Quote Link to post Share on other sites
interyes Posted January 26, 2019 Author Report Share Posted January 26, 2019 Как минимум нужна ссылка на сайт.Возможно создать для каждой текстовки свой шаблон и в 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 ); Quote Link to post Share on other sites
phukortsin Posted January 26, 2019 Report Share Posted January 26, 2019 Возможно создать для каждой текстовки свой шаблон и в cart_update.php по аналогии обрабатывать?Именно так и надо делать, по аналогии с уже обновляющимися блоками... Quote Link to post Share on other sites
interyes Posted January 26, 2019 Author Report Share Posted January 26, 2019 Именно так и надо делать, по аналогии с уже обновляющимися блоками...Спасибо, буду разбираться! Quote Link to post Share on other sites
interyes Posted January 26, 2019 Author Report Share Posted January 26, 2019 Что то делаю видимо не так.В корзине код <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 ); Подскажите, что не учел? Quote Link to post Share on other sites
interyes Posted January 26, 2019 Author Report Share Posted January 26, 2019 Так же в скрипте везде добавил по аналогии // Обновление информера корзины //----------------------------------------// 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; } } }); }; Quote Link to post Share on other sites
Noxter Posted January 26, 2019 Report Share Posted January 26, 2019 Именно так и надо делать, по аналогии с уже обновляющимися блоками...И это советует корс - царь программирования... Позор! Нужно данные отправлять json-ом без шаблонов, потом с помощью JS нужные данные вставлять в нужные места, а не вот такое рукоблудство. Quote Link to post Share on other sites
interyes Posted January 26, 2019 Author Report Share Posted January 26, 2019 И это советует корс - царь программирования...Позор!Нужно данные отправлять json-ом без шаблонов, потом с помощью JS нужные данные вставлять в нужные места, а не вот такое рукоблудство.Noxter, есть примеры реализации? Quote Link to post Share on other sites
Noxter Posted January 26, 2019 Report Share Posted January 26, 2019 Noxter, есть примеры реализации?В сети куча! Quote Link to post Share on other sites
phukortsin Posted January 26, 2019 Report Share Posted January 26, 2019 И это советует корс - царь программирования...Позор!Нужно данные отправлять json-ом без шаблонов, потом с помощью JS нужные данные вставлять в нужные места, а не вот такое рукоблудство. Не переживайте так, дяденька Noxter.Ваше объяснение теоретически правильно. Но с практической точки для ТС не только совершенно бесполезно, но даже вредно, по-моему. Вы совершенно не виноваты в том, что не заметили, что у ТС в текущих файлах есть все нужные примеры того, как через AJAX за один запрос можно обновлять сразу несколько мест на странице. И ему совсем не надо рыскать по Сети, все примеры у него под рукой. Такие примеры давным-давно известны, например, много лет уже такой прием используется в шаблоне trizzy. Если он Вам неизвестен, ничего страшного, не волнуйтесь, берегите здоровье... И для того, чтоб дать такой абстрактый совет, как Вы дали, совсем не обязательно было знать адрес сайта... Quote Link to post Share on other sites
Noxter Posted January 26, 2019 Report Share Posted January 26, 2019 Вот именно, ленивые и малоопытные именно так и делают, потому как так сделал Пикусов, унаследовали так сказать у него эту лень или недоопыт. Сами то думать не хотят, по этому и не делают оптимально, а делают лишь бы работало.Все эти прёмы мне давно известны и все они одинаковые, простой копипаст кода не более того. Но тебе Корс этого никак не понять, ведь ты же не отличаешь файлы от классов, ты не обучаем, морально и физически устарел.О чём тут можно говорить? Quote Link to post Share on other sites
phukortsin Posted January 27, 2019 Report Share Posted January 27, 2019 Вот именно, ленивые и малоопытные именно так и делают, потому как так сделал Пикусов, унаследовали так сказать у него эту лень или недоопыт.Вы совершенно правы, так действительно делают и ленивые и малоопытные. Потому как у них задача стоит чтоб работало правильно. А то, что у них некрасивый длинный код, в то время, как какой-нибудь мастер Noxter мог бы написать красивый короткий код, их обычно не волнует. Таково уж мышление у многих людей... Сами то думать не хотят, по этому и не делают оптимально, а делают лишь бы работало. Опять Вы правы, они для того и используют готовую CMS, чтоб меньше самим думать. И призывать их изобретать свой велосипед, как Вы частенько делаете, явно бесперспективно... Вы ведь не расписываете для них правильный код. А даже если они сами будут по Вашему совету искать в Сети, то им отличить хороший код от плохого практически невозможно. Тут нужны большие скилы... Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.