-=NICROSS=- Posted November 19, 2016 Report Share Posted November 19, 2016 Добрый день друзья! Сделал варианты товаров выпадающим списком таким образом. html разметка: <!-- Выбор варианта товара --> <form class="variants" action="/cart"> <div class="price"> <div class="prc-old"> {$product->variant->compare_price|convert} {$currency->sign|escape} </div> <div class="prc-new"> {$product->variant->price|convert} {$currency->sign|escape} </div> </div> <div class="cart"> {if $product->variants|count > 0} {if $product->variants|count>1} <select name="variant"> {foreach $product->variants as $v} <option value="{$v->id}" data-price="{$v->price|convert} {$currency->sign|escape}" data-compare-price="{$v->compare_price|convert} {$currency->sign|escape}">{$v->name}</option> {/foreach} </select> {else} <input name="variant" value="{$product->variant->id}" type="radio" checked style="display:none!important;"/> {/if} <input class="button" type="submit" value="В корзину"/> {else} Нет в наличии {/if} </div> </form> <!-- end --> JS // Выбор варианта $('select[name=variant]').live('change', function(){ price = $(this).find('option:selected').attr('data-price'); compare_price = ''; if(typeof $(this).find('option:selected').attr('data-compare-price') == 'string') compare_price = $(this).find('option:selected').attr('data-compare-price'); $(this).closest('form.variants').find('.prc-new').html(price); $(this).closest('form.variants').find('.prc-old').html(compare_price); return false; }); Теперь встал вопрос. Хочу вывести артикулы товаров на странице товара и каталога. Чтобы при выборе варианта при смене цены, так же менялся артикул. Подскажите, пожалуйста, как? Предполагаю, что нужно дописывать JS по аналогии с ценой, но в том не силен. Quote Link to post Share on other sites
Solution Kasha Posted November 20, 2016 Solution Report Share Posted November 20, 2016 value="{$v->id}" data-price="{$v->price|convert} {$currency->sign|escape}" data-compare-price="{$v->compare_price|convert} {$currency->sign|escape}">{$v->name}меняешь на value="{$v->id}" data-price="{$v->price|convert} {$currency->sign|escape}" data-sku="{$v->sku|escape}" data-compare-price="{$v->compare_price|convert} {$currency->sign|escape}">{$v->name} и дописать JS собственно добавить // Выбор варианта$('select[name=variant]').live('change', function(){ price = $(this).find('option:selected').attr('data-price'); sku = $(this).find('option:selected').attr('data-sku'); compare_price = ''; if(typeof $(this).find('option:selected').attr('data-compare-price') == 'string') compare_price = $(this).find('option:selected').attr('data-compare-price'); $(this).closest('form.variants').find('.prc-new').html(price); $(this).closest('form.variants').find('.sku*').html(sku); $(this).closest('form.variants').find('.prc-old').html(compare_price); return false;}); Где sku* - название класса в который записан артикул в шаблоне. в приведенном вами коде этого просто нет, по этому не могу указать точно. Quote Link to post Share on other sites
-=NICROSS=- Posted November 22, 2016 Author Report Share Posted November 22, 2016 Все работает. Спасибо большое! 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.