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

Количество товара перед помещением в корзину


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

Нашел в вики вот такую "статью"
но ничерта же непонятно как оно должно работать
нужно сделать вот такое

добавил рядом с кнопкой input, а что дальше?

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

статью почемуто откатили, input выглядит вот так

<input class="count" type="text" size="2" name="amount" value="1">

без \

и еще вопрос, как убрать переход в корзину при нажатии на кнопку?
Ссылка на сообщение
Поделиться на другие сайты
  • 2 недели спустя...
  • 2 недели спустя...

у меня все равно открываеться корзина,а пе перелетает товар в корзину.
Пробывал два вариата корзины как в той статье, оба не работают на 2.1

Ссылка на сообщение
Поделиться на другие сайты
  • 1 месяц спустя...

Если кому-то еще понадобится, то на версии 2.1.3 работает такой код:

// Аяксовая корзина$('form.variants').live('submit', function(e) {	e.preventDefault();	button = $(this).find('input[type=submit]');	if($(this).find('input[name=variant]:checked').size()>0)		variant = $(this).find('input[name=variant]:checked').val();	if($(this).find('select[name=variant]').size()>0)		variant = $(this).find('select').val();	$.ajax({		url: "ajax/cart.php",		data: {variant: variant, amount: $(this).find('input[name=amount]').val()},				dataType: 'json',		success: function(data){			$('#cart_informer').html(data);			if(button.attr('data-result-text'))				button.val(button.attr('data-result-text'));		}	});	var o1 = $(this).offset();	var o2 = $('#cart_informer').offset();	var dx = o1.left - o2.left;	var dy = o1.top - o2.top;	var distance = Math.sqrt(dx * dx + dy * dy);	$(this).closest('.product').find('.image img').effect("transfer", { to: $("#cart_informer"), className: "transfer_class" }, distance);		$('.transfer_class').html($(this).closest('.product').find('.image').html());	$('.transfer_class').find('img').css('height', '100%');	return false;});
Ссылка на сообщение
Поделиться на другие сайты

ребята, в версии 2.0.2 пытаюсь сделать выбор количества товара перед помещением в корзину выпадающим списком, при выборе количества отправляет в корзину всего 1 товар.

ход изменений:

в файле /js/ajax-cart.js содержимое

// Аяксовая корзина
$('form.cart').live('submit', function(e) {
e.preventDefault();
var button = $(this).find('input[type="submit"]');
$.ajax({
url: "ajax/cart.php",
data: {variant: $(this).find('select').val(),
amount: $(this).find('input[name="amount"]').val()
},
dataType: 'json',
success: function(data){
$('#cart_informer').html(data);
if(button.attr('added_text'))
button.val(button.attr('added_text'));
}
});
var o1 = $(this).offset();
var o2 = $('#cart_informer').offset();
var dx = o1.left — o2.left;
var dy = o1.top — o2.top;
var distance = Math.sqrt(dx * dx + dy * dy);
$(this).closest('.product').find('.image img').effect("transfer", { to: $("#cart_informer"), className: "transfer_class" }, distance);
$('.transfer_class').html($(this).closest('.product').find('.image').html());
$('.transfer_class').find('img').css('height', '100%');
return false;
});



в файле product.tpl, products.tpl, hits.tpl

<select name="amounts[{$product->variant->id}]" class="amounts">			{section name=amounts start=1 loop=$product->variant->stock+1 step=1}			<option value="{$smarty.section.amounts.index}" {if $product->amount==$smarty.section.amounts.index}selected{/if}>{$smarty.section.amounts.index} {$settings->units}</option>			{/section}		</select>


Что не так делаю, подскажите пожалуйста?
Ссылка на сообщение
Поделиться на другие сайты
  • 4 недели спустя...

Kosjak76

Спасибо за замечание и наводку.

Исправил строку в файле /js/ajax-cart.js:

amount: $(this).find('input[name="amount"]').val()



на

amount: $(this).find('select[name=amount]').val()


ЗАРАБОТАЛО!
Ссылка на сообщение
Поделиться на другие сайты

ВЕРСИЯ 2.0.2

Выбор количества товара перед помощением в корзину выпадающим списком:


1. В файлах product.tpl, products.tpl, hit.tpl и везде где необходимо выводить количество товаров вставляем:

<select name="amount" class="amounts">
		{section name=amounts start=1 loop=$product->variant->stock+1 step=1}
		<option value="{$smarty.section.amounts.index}" {if $product->amount==$smarty.section.amounts.index}selected{/if}>{$smarty.section.amounts.index} {$settings->units}</option>
		{/section}
	</select>



2. Для добавления Ajax обновления корзины заменяем в файле /js/ajax-cart.js содержимое на это:

// Аяксовая корзина$('form.cart').live('submit', function(e) {	e.preventDefault();	var button = $(this).find('input[type=submit]');	$.ajax({		url: "ajax/cart.php",		data: {variant: $(this).find('select').val(),		amount: $(this).find('select[name=amount]').val()		},		dataType: 'json',		success: function(data){			$('#cart_informer').html(data);			if(button.attr('added_text'))				button.val(button.attr('added_text'));		}	});	var o1 = $(this).offset();	var o2 = $('#cart_informer').offset();	var dx = o1.left - o2.left;	var dy = o1.top - o2.top;	var distance = Math.sqrt(dx * dx + dy * dy);	$(this).closest('.product').find('.image img').effect("transfer", { to: $("#cart_informer"), className: "transfer_class" }, distance);	$('.transfer_class').html($(this).closest('.product').find('.image').html());	$('.transfer_class').find('img').css('height', '100%');	return false;});


Соответственно проверяйте код и удаляйте знак \ перед "
Ссылка на сообщение
Поделиться на другие сайты
  • 2 недели спустя...

Danya , версия 2.1.4 перекидывает на страницу корзины =(
помогите реализовать

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

psavatar

Попробуйте такой код:

// Аяксовая корзина $('form.variants').live('submit', function(e) { e.preventDefault(); button = $(this).find('input[type=submit]'); if($(this).find('input[name=variant]:checked').size()>0) variant = $(this).find('input[name=variant]:checked').val(); if($(this).find('select[name=variant]').size()>0) variant = $(this).find('select').val(); $.ajax({ url: "ajax/cart.php", data: {variant: variant, amount: $(this).find('input[name=amount]').val()}, dataType: 'json', success: function(data){ $('#cart_informer').html(data); if(button.attr('data-result-text')) button.val(button.attr('data-result-text')); } }); var o1 = $(this).offset(); var o2 = $('#cart_informer').offset(); var dx = o1.left — o2.left; var dy = o1.top — o2.top; var distance = Math.sqrt(dx * dx + dy * dy); $(this).closest('.product').find('.image img').effect("transfer", { to: $("#cart_informer"), className: "transfer_class" }, distance); $('.transfer_class').html($(this).closest('.product').find('.image').html()); $('.transfer_class').find('img').css('height', '100%'); return false; });
Ссылка на сообщение
Поделиться на другие сайты
  • 3 недели спустя...

Для версии 2.1.5 никто не делал? Что-то ничего не подходит из этого.
Может кто подскажет какой код нужен. На версии 2.1.0 делал, все работало.

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

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

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

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

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

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

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

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

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

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