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

менять цену в зависимости от выбранного radiobutton


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

Есть на форуме решение где radiobutton меняется на select и цена меняется в зависимости от выбранного в селекте значения.

 

А как сделать чтоб было несколько radiobutton а цена одна , и менялась бы в зависимости от radiobutton.

 

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

А как сделать чтоб было несколько radiobutton а цена одна , и менялась бы в зависимости от radiobutton.

Весьма сложно цену менять, если она ОДНА.

 

Если Вы хотите, чтобы было НЕСКОЛЬКО ГРУПП радиокнопок и показываемая цена менялась в зависимости от выбранных в группах значений, то такое делается отдельным программированием.

Методы можно почерпнуть, например, тут:

http://forum.simplacms.ru/topic/6102-%D0%B2%D1%8B%D0%B1%D1%80%D0%B0%D1%82%D1%8C-%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80-%D0%B8-%D1%86%D0%B2%D0%B5%D1%82/

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

Точно также как и со списком.

 

 

{foreach $product->variants as $v}
			<tr class="variant">
				<td>
<input data-price="{$v->price|convert} {$currency->sign|escape}" data-compare-price="{$v->compare_price|convert} {$currency->sign|escape}" id="product_{$v->id}" name="variant" value="{$v->id}" type="radio" class="variant_radiobutton" {if $product->variant->id==$v->id}checked{/if} {if $product->variants|count<2}style="display:none;"{/if}/>
				</td>
				<td>
					{if $v->name}<label class="variant_name" for="product_{$v->id}">{$v->name}</label>{/if}
				</td>
			</tr>
			{/foreach}
// Выбор варианта
$('input[name=variant]').on('change', function(){
    price = $(this).find('input:checked').attr('data-price');
    compare_price = $(this).find('input:checked').attr('data-compare-price');
    $(this).closest('form.variants').find('.price').html(price);
    $(this).closest('form.variants').find('.price-old').html(compare_price);
    return false;
});

 

 

 

Как то так? не работает

Изменено пользователем megauser
Ссылка на сообщение
Поделиться на другие сайты

$('input[name=variant]').on('click', function(){

 

В целом функцию упростил

 

$(function(){
$('input[name=variant]').change(function(){
  $('.price').html($(this).attr('data-price'));
  $('old-price').html($(this).attr('data-compare_price')||'');
  return false;
    });

Но проблема теперь в том что если добавить radiobutton в список товаров

где на странице много товаров, то при клике на радиокнопку меняется цена у всех товаров. Как поправить ?

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

В целом функцию упростил

 

 

$(function(){
$('input[name=variant]').change(function(){
  $('.price').html($(this).attr('data-price'));
  $('old-price').html($(this).attr('data-compare_price')||'');
  return false;
    });
Но проблема теперь в том что если добавить radiobutton в список товаров

где на странице много товаров, то при клике на радиокнопку меняется цена у всех товаров. Как поправить ?

 

 

А вот нечего было упрощать, на то и расчёт чтобы в списке товаров тоже работало!
Ссылка на сообщение
Поделиться на другие сайты

А вот нечего было упрощать, на то и расчёт чтобы в списке товаров тоже работало!

Данная функция не меняет значение цены. 

 

$('input[name=variant]').on('click', function(){
    price = $(this).find(':checked').attr('data-price');
    compare_price = $(this).find('input:checked').attr('data-compare-price');
    $(this).closest('form.variants').find('.price').html(price);
    $(this).closest('form.variants').find('.old-price').html(compare_price);
    return false;
});

Более того, перестает работать сам выбор радиокнопки.

Изменено пользователем megauser
Ссылка на сообщение
Поделиться на другие сайты

Бить указкой по таким рукам нужно!


price = $(this).attr('data-price');
compare_price = $(this).attr('data-compare-price');
или:

price = $(this).data('price');
compare_price = $(this).data('compare-price');
Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

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

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

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

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