Перейти к содержимому


Изменение Количества Товара Кнопками


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 34

#1 sanik55

sanik55

    Пользователь

  • Пользователи
  • PipPip
  • 47 сообщений

Отправлено 13 Февраль 2013 - 08:59

Спецы, подскажите, как сделать, чтобы количество необходимого товара пользователь мог изменять кнопками + и - , а не вводить вручную?

#2 Koderhan

Koderhan

    Активный участник

  • Модератоpы
  • 6 227 сообщений

Отправлено 13 Февраль 2013 - 09:52

В файле "Корзина".
Найти  код:
<td class="number"><input name="form[quantity][{cart_items.GOODS_MOD_ID}]" value="{cart_items.ORDER_LINE_QUANTITY}" class="number txtalgncnt" type="text" /> {cart_items.GOODS_MOD_MEASURE_NAME}</td>
Заменить:
<td class="number">
			 <div class="nums">
			 <span class="minus">-</span>
				 <input name="form[quantity][{cart_items.GOODS_MOD_ID}]" value="{cart_items.ORDER_LINE_QUANTITY}" class="number txtalgncnt" type="text" /> {cart_items.GOODS_MOD_MEASURE_NAME}
			 <span class="plus">+</span>
			 </div>
			 <script type="text/javascript" >
			 $(document).ready(function() {
			 $('.minus').click(function () {
			 var $input = $(this).parent().find('input');
			 var count = parseInt($input.val()) - 1;
			 count = count < 1 ? 1 : count;
			 $input.val(count);
			 $input.change();
			 return false;
			 });
		 $('.plus').click(function () {
		 var $input = $(this).parent().find('input');
		 $input.val(parseInt($input.val()) + 1);
		 $input.change();
		 return false;
		 });
		 });
		 </script>
		 </td>

В файл "main.css".
Добавить код:
span {cursor:pointer; }
.minus, .plus{
width:10px;
height:10px;
background:#f2f2f2;
border-radius:4px;
padding:3px 5px 3px 5px;
border:1px solid #ddd;
}


#3 sanik55

sanik55

    Пользователь

  • Пользователи
  • PipPip
  • 47 сообщений

Отправлено 13 Февраль 2013 - 10:06

Спасибо за оператиный ответ :) Кнопки добавились, но кнопка + находится не рядом с количеством товара, а под этим полем. Кнопка "-" добавилась корректно.

И еще один момент. Когда в корзину добавлен товар и его количество не равно 1, при добавлении другого товара и при изменении его количества выводятся значения не подряд, а через единицу, например:

Добавили Товар 1. Его количество по умолчанию 1. Изменили количество, нажатием кнопки "+" и стало 4 единицы. Все корректно.
Добавили Товар 2. Его количество по умолчанию 1. Жмем "+" и появляется не 2, а 3, далее 5, 7, 9 и т.д. При нечетном количестве Товара 1 работает так же, значения выводятся через 1.

Сообщение отредактировал sanik55: 13 Февраль 2013 - 10:18


#4 Koderhan

Koderhan

    Активный участник

  • Модератоpы
  • 6 227 сообщений

Отправлено 13 Февраль 2013 - 10:59

Это происходит из-за того что js не может сохранить значения которые были в этом поле при переходе на другую страницу.

#5 sanik55

sanik55

    Пользователь

  • Пользователи
  • PipPip
  • 47 сообщений

Отправлено 13 Февраль 2013 - 12:43

Как это можно исправить? Неправильное положение кнопки "+" тоже ошибка скрипта?

#6 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 353 сообщений

Отправлено 14 Февраль 2013 - 00:40

Пожалуйста, приведите пример такого отображения на вашем сайте указав ссылку на страницу, или сообщив номер вашего аккаунта.

#7 sanik55

sanik55

    Пользователь

  • Пользователи
  • PipPip
  • 47 сообщений

Отправлено 14 Февраль 2013 - 09:12

Вот ссылка: http://s587861.storeland.ru/cart

П.С. Хотел отправить ЛС, но форум сообщил что Вы не можете принимать новые сообщения.

#8 Koderhan

Koderhan

    Активный участник

  • Модератоpы
  • 6 227 сообщений

Отправлено 14 Февраль 2013 - 12:00

Просмотр сообщенияsanik55 (14 Февраль 2013 - 09:12) писал:

Вот ссылка: http://s587861.storeland.ru/cart

П.С. Хотел отправить ЛС, но форум сообщил что Вы не можете принимать новые сообщения.
В файле "main.csstemplate".
Найти код:
  .minus, .plus{
   width:10px;
   height:10px;
   background:#f2f2f2;
   border-radius:4px;
   padding:3px 5px 3px 5px;
   border:1px solid #ddd;
  }
Заменить:
  .minus, .plus{
   width: 32px;
   height:10px;
   background:#f2f2f2;
   border-radius:4px;
   padding:3px 5px 3px 5px;
   border:1px solid #ddd;
 
   display: block;
}


#9 sanik55

sanik55

    Пользователь

  • Пользователи
  • PipPip
  • 47 сообщений

Отправлено 14 Февраль 2013 - 12:38

Спасибо, кнопки стали отображаться хорошо :)
А как решить вопрос с тем, что некорректно работает добавление количества товара кнопками? Повторюсь, дело вот в чем:
Если в корзине один вид товара, то при нажатии "+" начисляется одна единица товара.
Если в корзине два наименования товара, то при однократном нажатии конопки "+" добавляется две единицы товара, т.е. значения через один. Последовательность в итоге выглядит так: по умолчанию одна единица товара, жмем "+" и становится 3 единицы, жмем еще раз становится 5, жмем "-" обратно 3 и 1. Как это исправить?..

#10 Koderhan

Koderhan

    Активный участник

  • Модератоpы
  • 6 227 сообщений

Отправлено 14 Февраль 2013 - 13:33

Попробуйте заменить код:
Найти код:
						 <script type="text/javascript" >
						 $(document).ready(function() {
						 $('.minus').click(function () {
						  var $input = $(this).parent().find('input');
						  var count = parseInt($input.val()) - 1;
						  count = count < 1 ? 1 : count;
						  $input.val(count);
						  $input.change();
						  return false;
						 });
						$('.plus').click(function () {
						var $input = $(this).parent().find('input');
						$input.val(parseInt($input.val()) + 1);
						$input.change();
						return false;
						});
						});
				   </script>
Заменить:
						 <script type="text/javascript" >
						 $(document).ready(function() {
						 $('.minus').click(function () {
						  var $input = $(this).parent().find('input:first');
						  var count = parseInt($input.val()) - 1;
						  count = count < 1 ? 1 : count;
						  $input.val(count);
						  $input.change();
						  return false;
						 });
						$('.plus').click(function () {
						var $input = $(this).parent().find('input:first');
						$input.val(parseInt($input.val()) + 1);
						$input.change();
						return false;
						});
						});
				   </script>


#11 sanik55

sanik55

    Пользователь

  • Пользователи
  • PipPip
  • 47 сообщений

Отправлено 14 Февраль 2013 - 13:51

А в каком это файле?

UPD: внес изменения в файл корзина. Не помогло... Работает по прежнему алгоритму, Счет идет не подряд, а через единицу. Cookie удалял.

Сообщение отредактировал sanik55: 14 Февраль 2013 - 14:00


#12 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 353 сообщений

Отправлено 15 Февраль 2013 - 01:20

Данный вопрос с использованием стрелок рассматривался тут http://forum.storela...вара/#entry1226

#13 tuzzen

tuzzen

    Пользователь

  • Пользователи
  • PipPip
  • 22 сообщений

Отправлено 31 Июль 2013 - 08:57

Всем привет!

Подскажите пожалуйста как сделать?

Мне нужно, чтобы на страницах "Товар", "Каталог", "Корзина" и всех других, где виден товар, рядом с кнопкой купить было окошко для ввода количества и стрелочки больше/меньше для его изменения.
А так же должны выполняться следующие условия:
1) количество(число) не должно быть отрицательным
2) количество должно увеличиваться/уменьшаться кратно упаковке (по каждому товару своё количество штук в упаковке),

#14 miyako

miyako

    Активный участник

  • Модератоpы
  • 5 372 сообщений

Отправлено 31 Июль 2013 - 13:47

Просмотр сообщенияtuzzen (31 Июль 2013 - 08:57) писал:

Всем привет!

Подскажите пожалуйста как сделать?

Мне нужно, чтобы на страницах "Товар", "Каталог", "Корзина" и всех других, где виден товар, рядом с кнопкой купить было окошко для ввода количества и стрелочки больше/меньше для его изменения.
А так же должны выполняться следующие условия:
1) количество(число) не должно быть отрицательным
2) количество должно увеличиваться/уменьшаться кратно упаковке (по каждому товару своё количество штук в упаковке),

Этой функции посвящена ветка форума  - http://forum.storela...__20#entry36569

#15 tuzzen

tuzzen

    Пользователь

  • Пользователи
  • PipPip
  • 22 сообщений

Отправлено 31 Июль 2013 - 15:47

miyako,

видимо у меня другой шаблон так как я не нахожу в своих шаблонов строки, указанные в ветке, которые нужно заменить

#16 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 353 сообщений

Отправлено 01 Август 2013 - 03:22

Ранее на данный вопрос вам ответили в теме форума http://forum.storela..._180#entry81666

Пожалуйста, не дублируйте ваши сообщения, в противном случае они будут удалены без предупреждения.

#17 i.smetanin

i.smetanin

    Пользователь

  • Пользователи
  • PipPip
  • 35 сообщений

Отправлено 07 Январь 2014 - 13:51

Рабочий вариант когда представленного в начале можно увидеть?

#18 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 08 Январь 2014 - 06:31

Можете посмотреть например страницу http://plintus-opt.r.../Ideal-Obvod-34

По вашему вопросу ответили в теме http://forum.storela...ра/#entry114115
Приносим извинения за столь долгий ответ.

#19 i.smetanin

i.smetanin

    Пользователь

  • Пользователи
  • PipPip
  • 35 сообщений

Отправлено 08 Январь 2014 - 06:44

Как оно на сайтах работает я видел, мне нужен именно код для того чтоб повторить, тот что представлен в этой теме не работает, а именно: Кнопка + убегает вниз а при наличии нескольких товаров добавляет при одном нажатии столько сколько всего товаров в корзине. в итоге если в корзине 2 товара он добавляет сразу по 2, а если 3 то по 3 за одно нажатие.  А сама реализация + и - мне нравится больше чем стрелочками.

#20 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 08 Январь 2014 - 06:56

Стрелки заменить на + и - не представляет проблемы, это уже можно будет сделать - когда общая реализация будет работать корректно. Если ваш вопрос напрямую относиться к вашей теме http://forum.storela...ра/#entry114115 то пожалуйста, не дублируйте ваши вопросы.




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных