interyes Опубликовано 26 января, 2019 Жалоба Поделиться Опубликовано 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} Прошу помощи как сделать обновление этой информации при изменении кол-ва без перезагрузки всего сайта. Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 26 января, 2019 Жалоба Поделиться Опубликовано 26 января, 2019 Как минимум нужна ссылка на сайт. Цитата Ссылка на сообщение Поделиться на другие сайты
interyes Опубликовано 26 января, 2019 Автор Жалоба Поделиться Опубликовано 26 января, 2019 (изменено) Как минимум нужна ссылка на сайт.... Изменено 26 января, 2019 пользователем interyes Цитата Ссылка на сообщение Поделиться на другие сайты
interyes Опубликовано 26 января, 2019 Автор Жалоба Поделиться Опубликовано 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 ); Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 26 января, 2019 Жалоба Поделиться Опубликовано 26 января, 2019 Возможно создать для каждой текстовки свой шаблон и в cart_update.php по аналогии обрабатывать?Именно так и надо делать, по аналогии с уже обновляющимися блоками... Цитата Ссылка на сообщение Поделиться на другие сайты
interyes Опубликовано 26 января, 2019 Автор Жалоба Поделиться Опубликовано 26 января, 2019 Именно так и надо делать, по аналогии с уже обновляющимися блоками...Спасибо, буду разбираться! Цитата Ссылка на сообщение Поделиться на другие сайты
interyes Опубликовано 26 января, 2019 Автор Жалоба Поделиться Опубликовано 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 ); Подскажите, что не учел? Цитата Ссылка на сообщение Поделиться на другие сайты
interyes Опубликовано 26 января, 2019 Автор Жалоба Поделиться Опубликовано 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; } } }); }; Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 26 января, 2019 Жалоба Поделиться Опубликовано 26 января, 2019 Именно так и надо делать, по аналогии с уже обновляющимися блоками...И это советует корс - царь программирования... Позор! Нужно данные отправлять json-ом без шаблонов, потом с помощью JS нужные данные вставлять в нужные места, а не вот такое рукоблудство. Цитата Ссылка на сообщение Поделиться на другие сайты
interyes Опубликовано 26 января, 2019 Автор Жалоба Поделиться Опубликовано 26 января, 2019 И это советует корс - царь программирования...Позор!Нужно данные отправлять json-ом без шаблонов, потом с помощью JS нужные данные вставлять в нужные места, а не вот такое рукоблудство.Noxter, есть примеры реализации? Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 26 января, 2019 Жалоба Поделиться Опубликовано 26 января, 2019 Noxter, есть примеры реализации?В сети куча! Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 26 января, 2019 Жалоба Поделиться Опубликовано 26 января, 2019 И это советует корс - царь программирования...Позор!Нужно данные отправлять json-ом без шаблонов, потом с помощью JS нужные данные вставлять в нужные места, а не вот такое рукоблудство. Не переживайте так, дяденька Noxter.Ваше объяснение теоретически правильно. Но с практической точки для ТС не только совершенно бесполезно, но даже вредно, по-моему. Вы совершенно не виноваты в том, что не заметили, что у ТС в текущих файлах есть все нужные примеры того, как через AJAX за один запрос можно обновлять сразу несколько мест на странице. И ему совсем не надо рыскать по Сети, все примеры у него под рукой. Такие примеры давным-давно известны, например, много лет уже такой прием используется в шаблоне trizzy. Если он Вам неизвестен, ничего страшного, не волнуйтесь, берегите здоровье... И для того, чтоб дать такой абстрактый совет, как Вы дали, совсем не обязательно было знать адрес сайта... Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 26 января, 2019 Жалоба Поделиться Опубликовано 26 января, 2019 Вот именно, ленивые и малоопытные именно так и делают, потому как так сделал Пикусов, унаследовали так сказать у него эту лень или недоопыт. Сами то думать не хотят, по этому и не делают оптимально, а делают лишь бы работало.Все эти прёмы мне давно известны и все они одинаковые, простой копипаст кода не более того. Но тебе Корс этого никак не понять, ведь ты же не отличаешь файлы от классов, ты не обучаем, морально и физически устарел.О чём тут можно говорить? Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 27 января, 2019 Жалоба Поделиться Опубликовано 27 января, 2019 Вот именно, ленивые и малоопытные именно так и делают, потому как так сделал Пикусов, унаследовали так сказать у него эту лень или недоопыт.Вы совершенно правы, так действительно делают и ленивые и малоопытные. Потому как у них задача стоит чтоб работало правильно. А то, что у них некрасивый длинный код, в то время, как какой-нибудь мастер Noxter мог бы написать красивый короткий код, их обычно не волнует. Таково уж мышление у многих людей... Сами то думать не хотят, по этому и не делают оптимально, а делают лишь бы работало. Опять Вы правы, они для того и используют готовую CMS, чтоб меньше самим думать. И призывать их изобретать свой велосипед, как Вы частенько делаете, явно бесперспективно... Вы ведь не расписываете для них правильный код. А даже если они сами будут по Вашему совету искать в Сети, то им отличить хороший код от плохого практически невозможно. Тут нужны большие скилы... Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.