avatar

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

Опубликовал в блог Дополнения и модули для Simpla CMS
0


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

Открываем файл ваш_шаблон/js/ajax_cart.js ищем
data: {variant: variant},

меняем на
data: {variant: $(this).find('select').val(), amount: $(this).find('input[name="amount"]').val(), variant: variant},

далее в файле шаблона product.tpl ищем
<input type="submit" class="button" value="в корзину" data-result-text="добавлено"/>

и перед ней добавляем
<input type=button value="-" class="add1" onclick="javascript:this.form.amount.value= this.form.amount.value<=1 ? 1 :parseInt(this.form.amount.value)-1 ;">
<input type="text" style="border:1px solid #C8C7C7; height:21px; width:38px; text-align:center; font-size:11px" name="amount" value="1">
<input type=button value="+" class="add2" onclick="javascript:this.form.amount.value= this.form.amount.value>=1000 ? 1000 :parseInt(this.form.amount.value)+1 ;">

Все, остается лишь добавить свои стили. Смотрим демо.

ДЕМО

6 комментариев RSS
avatar
Подскажите, что может быть не так, выбираеться только в сопутствующих товарах, а в основном нет? kalendari.pp.ua/products/kalendar-listovoj-a102
avatar
Код нужно разместить в 2 местах перед
<input type="submit" class="button" value="в корзину" data-result-text="добавлено"/>
в product.tpl и все будет работать.
avatar
Не подскажите как сделать такое же только в корзине?
К примеру prntscr.com/6rllks
avatar
хм, попробую сделать на выходных
avatar
Здравствуйте. Сайт достался по «наследству». Файл ajax_cart.js изменен. Куда и как вставлять проблема. Очень расчитываю на вашу подсказку

// Аяксовая корзина
$('form.variants').live('submit', function(e) {
e.preventDefault();
button = $(this).find('input[type=«submit»]');
string = $(this).serialize();
$.ajax({
url: «ajax/cart.php»,
data: string,
data: {variant: $(this).find('select').val(), amount: $(this).find('input[name=«amount»]').val(), variant: variant},
dataType: 'json',
success: function(data){
$('#cart_informer').html(data);
if(button.attr('data-result-text'))
button.val(button.attr('data-result-text'));
$.fancybox({
'href': '#data'
});
}
});
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;
});

$('form.cart_mini').live('submit', function(e) {
e.preventDefault();
button = $(this).find('input[type=«submit»]');
$.ajax({
url: «ajax/cart.php»,
data: {variant: $(this).find('input[name=«variant_id»]').val(),'mode':'remove'},
dataType: 'json',
success: function(data){
$('#cart_informer').html(data);
$('#cart').html(data);
$.fancybox({
'href': '#data'
});
}
});
$.fancybox.showActivity();
return false;
});

function update_cart(variant_id,amount)
{

$.ajax({
url: «ajax/cart.php»,
dataType: 'json',
data: {'variant':variant_id,'amount':amount,'mode':'update'},
success: function(data){
if(data){
$('#cart_informer').html(data);

$.fancybox({
'href': '#data'
});
}
}
});
$.fancybox.showActivity();
}

$('a.compare').live('click', function(e) {
href = $(this).attr('href');
$('#compare_informer').load(href+' #compare_informer');
$(this).removeClass('compare');
$(this).attr('href', 'compare/');
$(this).html(«В сравнении»);
var o1 = $(this).offset();
var o2 = $('#compare_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: $("#compare_informer"), className: «transfer_class» }, distance);
$('.transfer_class').html($(this).closest('.product').find('.image').html());
$('.transfer_class').find('img').css('height', '100%');
return false;

});
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.