AndreiX1 Опубликовано 16 января, 2018 Жалоба Поделиться Опубликовано 16 января, 2018 (изменено) Здравствуйте. Помогите решить задачку) Сделал варианты товара выпадающим списком, хочу чтобы блок селекта был виден только когда эти варианты есть. С вариантами всё в корзину добавляет, а вот когда без варианта товар - не даёт добавить в корзину, пишется ошибки Uncaught ReferenceError: variant is not defined at HTMLFormElement.<anonymous> (ajax_cart.js:11) at HTMLDocument.dispatch (jquery.min.js:3) at HTMLDocument.v.handle (jquery.min.js:3) Вот код карточки товара <!-- Выбор варианта товара --> {if $product->variants|count>0} <form class="variants" action="/cart"> {if $product->variants|count>1} <div class="blockselectprod"> <b>Выберите вариант</b> <div class="podipselect"> <select name="variant" class="ipselect"> {foreach $product->variants as $v} <option value="{$v->id}" data-price="{$v->price|convert:2}" data-compare-price="{$v->compare_price|convert:2} "> {if $v->name} <label class="variant_name" for="product_{$v->id}">{$v->name}</label>{/if} </option> {/foreach} </select> </div> </div> {/if} <div class="price"> <div class="price-value" style="text-align:center;"> <span class="price">{if $v->compare_price|convert:2 > 0} <span class="compare_price">{$v->compare_price|convert:2}</span>{/if}</span> <span class="price prc-new">{$product->variant->price|convert:2}</span> <span class="currency" style="margin-left: 6px;font-size: 18px;">руб.</span> </div> </div> <div class="avl"><i class="fa fa-check-circle"></i><span>В наличии</span></div> <div class="order-buttons"> <button type="submit" class="addCart"><i class="glyphicon glyphicon-shopping-cart" style="margin-right:6px;"></i>Купить</button> <div class="amountposit"> <div class="amount"> <input type="text" class="add_input" name="amount" value="1"> <input type=button value="-" class="add add1" onclick="javascript:this.form.amount.value= this.form.amount.value<=1 ? 1 :parseInt(this.form.amount.value)-1 ;"> <input type=button value="+" class="add add2" onclick="javascript:this.form.amount.value= this.form.amount.value>=1000 ? 1000 :parseInt(this.form.amount.value)+1 ;"> </div> </div> </div> <hr class="xs"> <div class="text-xs text-transparent">Понравилось предложение? Поделитесь!</div> </form> {else} Нет в наличии {/if} <!-- Выбор варианта товара (The End) --> Изменено 16 января, 2018 пользователем AndreiX1 Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 16 января, 2018 Жалоба Поделиться Опубликовано 16 января, 2018 Вы делаете неправильноСелект должен быть ОБЯЗАТЕЛЬНОНо, если вариант у товара один - можно всему блоку поставить display: none; Цитата Ссылка на сообщение Поделиться на другие сайты
AndreiX1 Опубликовано 16 января, 2018 Автор Жалоба Поделиться Опубликовано 16 января, 2018 Вы делаете неправильноСелект должен быть ОБЯЗАТЕЛЬНОНо, если вариант у товара один - можно всему блоку поставить display: none;не подскажите как это должно выглядеть? Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 16 января, 2018 Жалоба Поделиться Опубликовано 16 января, 2018 Вместо {if $product->variants|count>1} <div class="blockselectprod"> <b>Выберите вариант</b> <div class="podipselect"> <select name="variant" class="ipselect"> {foreach $product->variants as $v} <option value="{$v->id}" data-price="{$v->price|convert:2}" data-compare-price="{$v->compare_price|convert:2} "> {if $v->name} <label class="variant_name" for="product_{$v->id}">{$v->name}</label>{/if} </option> {/foreach} </select> </div> </div> {/if} Надо так <div class="blockselectprod"{if $product->variants|count == 1}style="display:none;"{/if}> <b>Выберите вариант</b> <div class="podipselect"> <select name="variant" class="ipselect"> {foreach $product->variants as $v} <option value="{$v->id}" data-price="{$v->price|convert:2}" data-compare-price="{$v->compare_price|convert:2} "> {if $v->name} <label class="variant_name" for="product_{$v->id}">{$v->name}</label>{/if} </option> {/foreach} </select> </div> </div> Цитата Ссылка на сообщение Поделиться на другие сайты
AndreiX1 Опубликовано 17 января, 2018 Автор Жалоба Поделиться Опубликовано 17 января, 2018 Вместо {if $product->variants|count>1} <div class="blockselectprod"> <b>Выберите вариант</b> <div class="podipselect"> <select name="variant" class="ipselect"> {foreach $product->variants as $v} <option value="{$v->id}" data-price="{$v->price|convert:2}" data-compare-price="{$v->compare_price|convert:2} "> {if $v->name} <label class="variant_name" for="product_{$v->id}">{$v->name}</label>{/if} </option> {/foreach} </select> </div> </div> {/if} Надо так <div class="blockselectprod"{if $product->variants|count == 1}style="display:none;"{/if}> <b>Выберите вариант</b> <div class="podipselect"> <select name="variant" class="ipselect"> {foreach $product->variants as $v} <option value="{$v->id}" data-price="{$v->price|convert:2}" data-compare-price="{$v->compare_price|convert:2} "> {if $v->name} <label class="variant_name" for="product_{$v->id}">{$v->name}</label>{/if} </option> {/foreach} </select> </div> </div> Спасибо) работает)) Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.