Jump to content

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


Recommended Posts

Тоже добавила эту доработку на свой сайт, заданное количество добавляет, но теперь при нажатии кнопки в корзину перебрасывает в саму корзину. Что сделала: в копии дефолтного шаблона в в 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"/ >

Link to post
Share on other sites
  • Replies 76
  • Created
  • Last Reply

Top Posters In This Topic

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

Link to post
Share on other sites

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

Link to post
Share on other sites
  • 1 month later...
  • 5 weeks later...
  • 2 months later...

Странно однако, только что заменил строку в 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">

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

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

Link to post
Share on other sites

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

Link to post
Share on other sites

У меня 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)

Link to post
Share on other sites

form.variants

 

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

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

Link to post
Share on other sites

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

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

 

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

data: {variant: variant},

на

data: {variant: variant,amount: $(this).find('input[name="amount"]').val()},
Link to post
Share on other sites

 

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

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

 

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

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

после

data: {variant: variant},

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

Link to post
Share on other sites
  • 2 months later...

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

Link to post
Share on other sites

возможно.

вот код  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()},


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

 

 


 

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...