interyes Опубликовано 31 января, 2019 Жалоба Поделиться Опубликовано 31 января, 2019 Всем привет! Столкнулся с проблемой которую хотелось бы профиксить. При клике на кнопку "В корзину", выводится результат "В корзине" и добавляется класс к самой кнопке, но после ребута страницы все возвращается как было. Кто-то делал чтоб статус кнопки сохранялся т.е. оставался "В корзине". Всем спасибо! .tpl <input type="submit" class="Button js-add2basket" value="В корзину" data-result-text="В корзине"/> ajax-cart.js // Аяксовая корзина $('form.cart').live('submit', function(e) { e.preventDefault(); button = $(this).find('input[type="submit"]'); $.ajax({ url: "ajax/cart.php", data: {variant: $(this).find('select').val()}, dataType: 'json', success: function(data){ $('#cart_informer').html(data); if(button.attr('added_text')) button.val(button.attr('added_text')); } }); $(this).find('input[type="submit"]').effect("transfer", { to: $("#cart_informer") }, 500); return false; }); кусок .js с добавлением класса // Добавление в корзину $(document).on('submit', 'form.variants', function (e) { e.preventDefault(); var button = $(this).find('input[type="submit"]'); var variant = $(this).find('.Menu_select-inner li.active').attr('data-variant'); $.ajax({ url: "ajax/cart.php", data: { variant: $(this).find('select').val(), amount: $(this).find('input[name="amount"]').val(), variant: variant }, dataType:'json', success: function(data) { $('#cart_mini').html(data.cart_mini); $('#cart_informer').html(data.cart_informer); if(button.attr('data-result-text')) button.val(button.attr('data-result-text')); button.addClass('incart'); } }); // addBasketPop.popup('open'); // setTimeout(function(){ // addBasketPop.popup('close').fadeOut(); // }, 1000); return false; }); Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 31 января, 2019 Жалоба Поделиться Опубликовано 31 января, 2019 В шаблоне надо проверять условие и действовать соответственно. А если у товара много вариантов, то добавочные сложности будут... Цитата Ссылка на сообщение Поделиться на другие сайты
simpla24 Опубликовано 31 января, 2019 Жалоба Поделиться Опубликовано 31 января, 2019 Вам необходимо делать проверку. Сначала взять все id вариантов товаров, которые находятся в корзинефайл view/IndexView.php под кодом $this->design->assign('categories', $this->categories->get_categories_tree()); вставьте //Варианты товаров в корзине if(!empty($_SESSION['shopping_cart'])) $variants_in_cart = array_keys($_SESSION['shopping_cart']); else $variants_in_cart = array(); $this->design->assign('variants_in_cart', $variants_in_cart); После чего вам в шаблоне будет доступна проверка {if in_array($product->variant->id,$variants_in_cart)} товар в корзине {else} добавить в корзину {/if}В шаблоне показано примерно, но смысл, думаю, ясен. Цитата Ссылка на сообщение Поделиться на другие сайты
interyes Опубликовано 31 января, 2019 Автор Жалоба Поделиться Опубликовано 31 января, 2019 Вам необходимо делать проверку. Сначала взять все id вариантов товаров, которые находятся в корзинефайл view/IndexView.php под кодом $this->design->assign('categories', $this->categories->get_categories_tree()); вставьте //Варианты товаров в корзине if(!empty($_SESSION['shopping_cart'])) $variants_in_cart = array_keys($_SESSION['shopping_cart']); else $variants_in_cart = array(); $this->design->assign('variants_in_cart', $variants_in_cart); После чего вам в шаблоне будет доступна проверка {if in_array($product->variant->id,$variants_in_cart)} товар в корзине {else} добавить в корзину {/if}В шаблоне показано примерно, но смысл, думаю, ясен. Большое спасибо! Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 31 января, 2019 Жалоба Поделиться Опубликовано 31 января, 2019 Решение сверхсложное. Надо использовать готовые средства типа{if $smarty.session.shopping_cart.$variant_id} Цитата Ссылка на сообщение Поделиться на другие сайты
simpla24 Опубликовано 31 января, 2019 Жалоба Поделиться Опубликовано 31 января, 2019 Решение сверхсложное. Надо использовать готовые средства типа{if $smarty.session.shopping_cart.$variant_id}да, так даже лучше будет Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.