Автор Тема: Два способа изменения количества товара в корзине  (Прочитано 14236 раз)

Оффлайн Albit

  • Пользователь
  • **
  • Сообщений: 31
    • Просмотр профиля
Вариант 1
Чтобы реализовать возможность добавлять или уменьшать количество товара в корзине с помощью кнопок + и - нужно  в файле shopping_cart.tpl.html

код ( в дефолтном шаблоне строки 47-50)

      <td align="left"><input type="text" name="count_{$cart_content[i].id}" id="count_{$cart_content[i].id}" value="{$cart_content[i].quantity}" size="5" min={$cart_content[i].min_q} {* onChange="$('#cart').submit();" *}/>
              {if $cart_content[i].min_q>$cart_content[i].quantity} {assign var="min_q" value="1"} <label for="count_70" generated="true" class="error">{$smarty.const.ORDERS_MIN_PRODUCT}{$cart_content[i].min_q}</label>{/if}
 
               </td>
 

заменить на код


 <td align="leftt"><b>
  <a onclick="cart_update('cart');">
  <img src="./images/minus.gif"  id="tt" value="-" title="Уменьшить количество товара в корзине" onclick="var qty_el = document.getElementById('count_{$cart_content[i].id}'); var qty = qty_el.value; if( !isNaN( qty ) && qty > 0 ) qty_el.value--;return false;"/></a>

  <input type="text" name="count_{$cart_content[i].id}" id="count_{$cart_content[i].id}" value="{$cart_content[i].quantity}" size="1" min={$cart_content[i].min_q} {* onChange="$('#cart').submit();" *}</b>
         <a onclick="cart_update('cart');">
<img src="./images/plus.gif" id="ss" value="+" title="Увеличить количество товара в корзине"onclick="var qty_el = document.getElementById('count_{$cart_content[i].id}'); var qty = qty_el.value; if( !isNaN( qty )) qty_el.value++;return false;" </a>

              {if $cart_content[i].min_q>$cart_content[i].quantity} {assign var="min_q" value="1"} <label for="count_70" generated="true" class="error">{$smarty.const.ORDERS_MIN_PRODUCT}{$cart_content[i].min_q}</label>{/if}
               </td>
Поскольку теперь кнопка "Пересчитать" не нужна, ее можно удалить, строка 161 код
<td align="right"><a onclick="cart_update('cart');" class="button"><span>{$smarty.const.UPDATE_BUTTON}</span></a></td>
« Последнее редактирование: Ноября 19, 2013, 11:05:27 am от Albit »

Оффлайн lugobor

  • Пользователь
  • **
  • Сообщений: 83
    • Просмотр профиля
    • Студия web дизайна Lugobor
Студия web дизайна http://lugobor.ru

Оффлайн liy92

  • Случайный Прохожий
  • *
  • Сообщений: 1
    • Просмотр профиля
Спасибо, но в lego 6.1 не нашёл картинок minus.gif и plus.gif. Какие у них должны быть размеры?

Оффлайн Albit

  • Пользователь
  • **
  • Сообщений: 31
    • Просмотр профиля
Спасибо, но в lego 6.1 не нашёл картинок minus.gif и plus.gif. Какие у них должны быть размеры?

размер 11х11 например такие

Оффлайн Albit

  • Пользователь
  • **
  • Сообщений: 31
    • Просмотр профиля
Вариант 2:на мой взгляд более удобный - изменение количества товара происходит с помощью левой и правой кнопок мышки
в файле shopping_cart.tpl.html строку 47
      <td align="left"><input type="text" name="count_{$cart_content[i].id}" id="count_{$cart_content[i].id}" value="{$cart_content[i].quantity}" size="5" min={$cart_content[i].min_q} {* onChange="$('#cart').submit();" *}/>заменяем на
        <td align="left"><<input style="width: 30px;" type="text" value="{$cart_content[i].quantity}" name="count_{$cart_content[i].id}" id="count_{$cart_content[i].id}" onclick="set_quantity('count_{$cart_content[i].id}', 1);cart_update('cart');" oncontextmenu="set_quantity('count_{$cart_content[i].id}', -1);cart_update('cart');return false" title="используйте левую и правую кнопки мыши для изменения количества">
в файле shopping_cart.tpl.html в самом низу вставляем
<script type="text/javascript">
{literal}
function set_quantity(quan, step){
        var oMod = document.getElementById(quan);
        if (!(iCurr = parseInt(oMod.value))) {
        iCurr = 0;
        }
        if (!(iCurr <= 0 && step < 0)) {
        oMod.value = iCurr + step;
        }
}
{/literal}
   
</script>

Оффлайн Heisenberg

  • Спец
  • ***
  • Сообщений: 157
    • Просмотр профиля
Эх, "потыцкать" бы. жаль демки нет.

Оффлайн Heisenberg

  • Спец
  • ***
  • Сообщений: 157
    • Просмотр профиля
спасибо, пронаблюдал.
честно говоря, я не читал второй пост. меня интересовал "кнопочный" вариант, да так и юзеру понятней.
у меня есть подобный, но "ослик" его преподносит по иначему.

Оффлайн Albit

  • Пользователь
  • **
  • Сообщений: 31
    • Просмотр профиля
Данный модуль на сайте автора стоит http://albit.com.ua
Ужасно неудобное решение как по мне.
Идёт постоянный рефреш страници, и не сразу понятно какая кнопка увеличивает а какая уменьшает, случайно нажал правую, получилось что уменьшило, а был товар 1шт. и тут бац - Ваша корзина пуста, так как типа количество 0 - это равносильно удалению товара. Приходиться лезть на сайт и по новому заказывать +)
Лучше уж кнопки поставить, ИМХО.

Спасибо за критику, в ней есть доля правды,наверное неопытному юзеру не совсем понятно как изменить количество, несмотря на подсказки да и кнопки привычней , а по мне если количество товара каждой позиции не более 1-3шт изменить количество или удалить товар одним кликом удобно.

Оффлайн Heisenberg

  • Спец
  • ***
  • Сообщений: 157
    • Просмотр профиля
да, в примере, весьма сложно сориентироваться обычному юзеру.
почему больше интересовал обычный, кнопочный вариант..
у меня есть свой вариант, и давно использую, но есть IE со всем его "злом", и приходится использовать костыли.
а ведь так хочется "чистоты" :)

ps/ честно, пробовал и эти варианты, но хочется мнения большинства.
« Последнее редактирование: Декабря 13, 2013, 12:08:03 am от Heisenberg »

Оффлайн Юрий

  • Старожил
  • ****
  • Сообщений: 322
    • Просмотр профиля
    • Во-Сток
Albit
Посмотрите может понравится http://jqueryui.com/spinner/

slamm
Да я тоже реализовывал аякс тут vo-stok.com.ua. Согласен что за один аякс - 35 - дороговато. Ну некоторым ставил свою реализацию по 50) Как модуль его не продаю из за трудностей в установке. Там переписал весь пхп. Уж очень много лагов в лего с корзиной...
« Последнее редактирование: Декабря 13, 2013, 01:50:12 am от Юрий »