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

Количество товара в корзине Select заменить на Input


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

  • 4 месяца спустя...

Сделал так заменил в шаблоне cart.tpl

	{* Количество *}
<td class="amount">
	<select name="amounts[{$purchase->variant->id}]" onchange="document.cart.submit();">
		{section name=amounts start=1 loop=$purchase->variant->stock+1 step=1}
		<option value="{$smarty.section.amounts.index}" {if $purchase->amount==$smarty.section.amounts.index}selected{/if}>{$smarty.section.amounts.index} {$settings->units}</option>
		{/section}
	</select>
</td>


на

{* Количество *}	<td class="amount">        <input class="input_sm" type="text" name="amounts[{$purchase->variant->id}]" onchange="document.cart.submit();" value="{$purchase->amount}">        </td>

Больше, вроде, ничего не менял.
Пока полет нормальный :)
Ссылка на сообщение
Поделиться на другие сайты
  • 3 недели спустя...

Привет! Ребята есть вопрос! Есть какие либо идеи поповоду того что бы цена менялась до нажатия энтр! тоесть когда в инпут только загнал 2 или 3,,,  сразу же подщитовалась бы цена,  реально такое?

Спасибо!

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

реально, делали многие такое. в свойства инпата вводишь onchange="название функции" и функцию обновления собственно. и всё :)

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

{* Количество *}

    <td class="amount">
        <input class="input_sm" type="text" name="amounts[{$purchase->variant->id}]" onchange="document.cart.submit();" value="{$purchase->amount}">
        <input class="bolwe" type="hidden" value="{($purchase->variant->stock)}">
     </td>


    {* Цена *}
    <td class="pricee">
        {($purchase->variant->price*$purchase->amount)}
    </td>
 
Ссылка на сообщение
Поделиться на другие сайты

вариант на jquery )  

  $('input.input_sm').keyup(function () {    

        $('.pricee').html($('.price').html() * $('input.input_sm').attr('value'));

        });

Обновление по какой-то причине не происходит (только по нажатию Enter). Ваш код не изменял, прописал в точности как в комментариях. Поможете?

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

Уважаемый, давайте ссылку на сайт... Иначе кто вас знает, что вы там накуролесили))) Экстрасенсов я здесь не видел.

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

Обновление по какой-то причине не происходит (только по нажатию Enter). Ваш код не изменял, прописал в точности как в комментариях. Поможете?

 ДаваЙ!  надо бы глянуть твой карт тпл!

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

Ребята у меня вот такая незадача! я все сделал без обновления, НО , у меня в корзине ввод количества идет через input  и когда я ввел количество ничего не поменялось но когда кликаю мышкой за пределами  inputa только тут работает Ajax

 

Вот код помогите ПОЖАЛУЙСТА кто шарит !

 

{literal}
<script type="text/javascript">
function update_cart(variant_id,amount)
{
    $.ajax({
        url: "ajax/cart_update.php",
        data: {'variant_id':variant_id,'amount':amount},
        success: function(data){
        if(data){
            $('#cart_informer').html(data.informer);
            $('#total_products').html(data.total_products);
            $('#total_price').html(data.total_price);
            $('#total_cost_'+variant_id).html(data.total_cost);
        }
        }
    });

}
</script>
{/literal}


    {* Количество *}
    <td class="amount">
            <input class="k" type="text" name="amounts[{$purchase->variant->id}]" onchange="update_cart('{$purchase->variant->id}',$(this).val());" value="{$purchase->amount}">
        </td>

    {* Цена *}
    <td class="pricee" id="total_cost_{$purchase->variant->id}">
        {($purchase->variant->price*$purchase->amount)}
    </td>
 
Ссылка на сообщение
Поделиться на другие сайты

А он так и должен работать... А как по другому? Если надо набрать 20, то он что, должен срабатывать после двойки? :-) 

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

А он так и должен работать... А как по другому? Если надо набрать 20, то он что, должен срабатывать после двойки? :-) 

Хотелось бы получить динамический пересчёт по keyup... Это было бы здорово. :)

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

А он так и должен работать... А как по другому? Если надо набрать 20, то он что, должен срабатывать после двойки? :-) 

Именно так !

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

В принципе, можно добавить кнопку "Обновить корзину" или перед иконкой удаления вставить что-то типа этого:     . Только вот незадача: скрипт срабатывает на клике в любом месте после изменения значения в input, а нужно чтобы срабатывал по конкретному запросу. Как сделать?

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

 

вариант на jquery )  

 

  $('input.input_sm').keyup(function () {    
        $('.pricee').html($('.price').html() * $('input.input_sm').attr('value'));
        });
 

Куда вот это надо вставить?

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

а если этот вариант допилить? рипал с одного сайта

что-то мешает блин (или вывод цены не так идёт c пробелами, что в итоге выдает NaN, или выбор доставки не так подтягивает данные - Uncaught ReferenceError: select_delivery_method is not defined)

 

{literal}<script>
function amChange(id, action)
{
    var value = $('#cnt_'+id).val()-0;
    if(isNaN(value))
      value=0;
    if(action == 'minus')
    {
        if(value == 0)
          {
           $('#'+id).val(value);
           return;
          }
        value--;
    }
    else if(action == 'plus')
        value++;
    $('#cnt_'+id).val(value);
    $.post('index.php', {vid:id, amount:$('#cnt_'+id).val()});
    var price = $('#price_'+id).text()-0;
 var sum=price*value;
    $('#summ_'+id).html('<b>'+sum.toFixed(2)+'</b>');
    var total = 0;
    var summ;
    $('[id^="summ_"]').each(function()
                            {
                            total+=($(this).text()-0);
                            });
    $('#total_summ').text(total.toFixed(2));
    select_delivery_method($('[id^=delivery_radio_]:checked').val());
}
</script>{/literal}

<a href="javascript:amChange('{$purchase->variant->id}','minus')" class="plus-minus">-</a> 
<input id="cnt_{$purchase->variant->id}" name="amount" type="text" value="1" maxlength="2" class="tovar_input" onChange="amChange({$purchase->variant->id}, 'set')"/>
<a href="javascript:amChange('{$purchase->variant->id}','plus')" class="plus-minus">+</a>
 

 

Изменено пользователем Vanger
Ссылка на сообщение
Поделиться на другие сайты
  • 1 год спустя...

 

Сделал так заменил в шаблоне cart.tpl

{* Количество *}
	<td class="amount">
		<select name="amounts[{$purchase->variant->id}]" onchange="document.cart.submit();">
			{section name=amounts start=1 loop=$purchase->variant->stock+1 step=1}
			<option value="{$smarty.section.amounts.index}" {if $purchase->amount==$smarty.section.amounts.index}selected{/if}>{$smarty.section.amounts.index} {$settings->units}</option>
			{/section}
		</select>
	</td>

на

{* Количество *}
	<td class="amount">
        <input class="input_sm" type="text" name="amounts[{$purchase->variant->id}]" onchange="document.cart.submit();" value="{$purchase->amount}">
        </td>

Больше, вроде, ничего не менял.

Пока полет нормальный :)

 

Отлично работает, подскажите как сделать изменение количества с кнопками  +  - ?

 

<input type=button value="–">

<input class="input_sm" type="text" name="amounts[{$purchase->variant->id}]" onchange="document.cart.submit();" value="{$purchase->amount}">

<input type=button value="+">

 

куда копать?

 

 

 

 

 

 

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

Копать однозначно в сторону джаваскрипта))

Если у вас получается менять значение, но при этом не сабмитится форма - копайте в сторону .trigger('change')

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

Копать однозначно в сторону джаваскрипта))

Если у вас получается менять значение, но при этом не сабмитится форма - копайте в сторону .trigger('change')

 

решил с + / - таким образом, кому надо решение:)

 

 

cart.tpl

 

<span class="minus">-</span>
<input class="value" type="text" name="amounts[{$purchase->variant->id}]" value="{$purchase->amount}"  onchange="document.cart.submit();" data-ratio="1" >
<span class="plus">+</span>                  
 
     <script type="text/javascript" >
        $(document).ready(function() {
            $('.minus').click(function () {
                var $input = $(this).parent().find('input.value');
                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.value');
                $input.val(parseInt($input.val()) + 1);
                $input.change();
                return false;
            });
        }); </script>

 

 

 

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

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

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

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

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

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

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

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

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

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