Jump to content

Recommended Posts

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

 

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

 

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

 

Link to post
Share on other sites
  • Solution

 

меняешь на 

 

 

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

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...