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

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


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

Тоже добавила эту доработку на свой сайт, заданное количество добавляет, но теперь при нажатии кнопки в корзину перебрасывает в саму корзину. Что сделала: в копии дефолтного шаблона в в ajax_cart.js с variant: $(this).find('input[name=variant]:checked').val();
на variant: $(this).find('input[name=variant]:checked').val(),amount: $(this).find('input[name=amount]').val(); и в products.tpl
добавила< input type="text" name="amount" value="10"/ >

Ссылка на сообщение
Поделиться на другие сайты
  • Ответов 76
  • Дата создания
  • Последний ответ

Лучшие авторы в теме

Лучшие авторы в теме

Что-то у меня не получается, чтобы он не перекидывал в корзину. Делал все так, как написано. Объясните пожалуйста поподробнее как исправить?

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

Все работает идеально, спасибо!
Подскажите пожалуйста как реализовать то же самое, только выпадающим списком, в точности как в корзине?

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

// Аяксовая корзина
$(‘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: $(this).find('input[name=variant]:checked').val(),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;
});

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

Странно однако, только что заменил строку в ajax_cart.js

с

data: {variant: $(this).find('input[name=variant]:checked').val()},

на

data: {variant: $(this).find('input[name=variant]:checked').val(),amount: $(this).find('input[name=amount]').val()},

в products.tpl добавил < input type="text" name="amount" value="10">

и все работает

В корзину только у меня перекидывает при нажатии на кнопку? В чём может быть дело?

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

Проверьте подключены ли jquery и jquery ui

Возможно, код изменяется в зависимости от версии CMC. Нужно решение для 2.1.5.

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

Очень жаль, что никто не подскажет где же всё-таки ошибка и почему перекидывает в корзину... Однако хочется выложить ссылку на тьюториал о том, как это поле ввода сделать более функциональным и, в конечном итоге, удобным для клиента. :) Вот ссылка: Увеличить и уменьшить значение в поле Input

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

У меня ajax_cart.js без изменений выглядит вот так:

// Аяксовая корзина
$('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},
		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;
});


/*
// Аяксовая корзина
$('a[href*="cart?variant"]').live('click', function(e) {
	e.preventDefault();
	//variant_id = $(this).attr('id');
	
	href = $(this).attr('href');
	pattern = /\/?cart\?variant=(\d+)$/;
	variant_id = pattern.exec(href)[1];
	
	link = $(this);
	$.ajax({
		url: "ajax/cart.php",
		data: {variant: variant_id},
		dataType: 'json',
		success: function(data){
			$('#cart_informer').html(data);
			//if(link.attr('added_text'))
			//	link.html(link.attr('added_text'));
			//link.attr('href', '/cart');
		}
	});

	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;
});
*/

 

Манипуляции с приведённым Крохой кодом не дают желаемого результата. В корзину товар добавляется, вариант товара отслеживается, количество верное, но есть одно "НО" - при нажатии на кнопку "В корзину" происходит редирект в ***/cart/... Помогите разобраться. (Версия 2.1.5)

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

form.variants

 

проверьте - указан ли класс в форме

Где смотреть? Не соображу. У меня в коде корзины нет того, что выше привёл Кроха. Что в моём случае можно сделать?

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

покажите index.tpl и cart_informer.tpl

а form.variants  в тех шаблонах где есть кнопка добавления в корзину 

 

в вашем варианте, нужно изменить

data: {variant: variant},

на

data: {variant: variant,amount: $(this).find('input[name="amount"]').val()},
Ссылка на сообщение
Поделиться на другие сайты

 

покажите index.tpl и cart_informer.tpl

а form.variants  в тех шаблонах где есть кнопка добавления в корзину 

 

в вашем варианте, нужно добавить 

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

после

data: {variant: variant},

Код отправил Вам в личном сообщении. Большое спасибо за подсказку, Буду пробовать.

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

пробовала все ваши варианты но или просто не работает, или при добавлении в корзину сразу переходит на страницу заказов  и ничего не добавляет.

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

возможно.

вот код  ajax_cart.js  без изменений версии 2.1.5

// Аяксовая корзина
$('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},
		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;
});

меняла


 

data: {variant: variant},

на


data: {variant: variant,amount: $(this).find('input[name="amount"]').val()},


ничего не добавляет и переходит сразу в корзину.

 

 


 

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

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

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

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

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

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

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

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

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

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