Добрый день!
Есть товар с вариантами А, Б и В. У каждого своя цена, вариант выбирается через select после чего с помощью скрипта подставляется цена соответствующая варианту и в sessionStorage записывается id варианта, это нужно для того, что бы вывести цену варианта (на странице товара) который выбрали на странице категории.
$('select[name=variant]').on('change', function(){
price = $(this).find('option:selected').attr('data-price');
compare_price = $(this).find('option:selected').attr('data-compare-price');
$(this).closest('form.addtocart').find('.prc-new').html(price);
$(this).closest('form.addtocart').find('.prc-old').html(compare_price);
var id = $(this).find('option:selected').val();
window.sessionStorage.setItem('var_id',id);
return false;
});
На странице товара мне удалось сделать, что бы отмечался вариант с id который записан в sessionStorage.
var var_id = window.sessionStorage.getItem('var_id');
if( var_id && var_id != $('select[name=variant]').val()){
$('select[name=variant]').find('option:selected').prop("selected","false");
$('select[name=variant]').find("option[value="+ var_id +"]").prop("selected","true");
}
Что нужно дописать, что бы и цена менялась в зависимости от варианта?
UPD. Дописал.
var var_id = window.sessionStorage.getItem('var_id');
if( var_id && var_id != $('select[name=variant]').val()){
var select = $('select[name=variant]');
select.find('option:selected').prop("selected","false");
select.find("option[value="+ var_id +"]").prop("selected","true");
price = select.find('option:selected').attr('data-price');
compare_price = select.find('option:selected').attr('data-compare-price');
select.closest('form.addtocart').find('.prc-new').html(price);
select.closest('form.addtocart').find('.prc-old').html(compare_price);
}
Все работает.
Вопрос теперь в другом, как сделать, что бы страница изначально загружалась с ценой варинта, а то сейчас загружается дефолтноя потом меняется на нужную?