Перейти к содержанию
Официальный форум поддержки Simpla

Рекомендуемые сообщения

Добрый день друзья!

 

Сделал варианты товаров выпадающим списком таким образом. 

 

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 по аналогии с ценой, но в том не силен.

 

Ссылка на сообщение
Поделиться на другие сайты
  • Решение

 

меняешь на 

 

 

и дописать 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* - название класса в который записан артикул в шаблоне. в приведенном вами коде этого просто нет, по этому не могу указать точно.

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...