Val Posted November 14, 2012 Report Share Posted November 14, 2012 Добрый день!Помогите новичку Нужно в корзине поле количество товаров Select заменить на InputСпасибо! Quote Link to post Share on other sites
Marshal Posted April 4, 2013 Report Share Posted April 4, 2013 Доброе время суток! тоже интересует вопрос! Хотя бы понять на сколько это сложно! Quote Link to post Share on other sites
Val Posted April 4, 2013 Author Report Share Posted April 4, 2013 Сделал так заменил в шаблоне 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>Больше, вроде, ничего не менял.Пока полет нормальный Quote Link to post Share on other sites
Marshal Posted April 4, 2013 Report Share Posted April 4, 2013 Гений)) Спасибо тебе огромное! Quote Link to post Share on other sites
Val Posted April 4, 2013 Author Report Share Posted April 4, 2013 рад помочь Quote Link to post Share on other sites
Marshal Posted April 22, 2013 Report Share Posted April 22, 2013 Привет! Ребята есть вопрос! Есть какие либо идеи поповоду того что бы цена менялась до нажатия энтр! тоесть когда в инпут только загнал 2 или 3,,, сразу же подщитовалась бы цена, реально такое?Спасибо! Quote Link to post Share on other sites
Kasha Posted April 22, 2013 Report Share Posted April 22, 2013 реально, делали многие такое. в свойства инпата вводишь onchange="название функции" и функцию обновления собственно. и всё Quote Link to post Share on other sites
Marshal Posted April 22, 2013 Report Share Posted April 22, 2013 вариант на jquery ) $('input.input_sm').keyup(function () { $('.pricee').html($('.price').html() * $('input.input_sm').attr('value')); }); Quote Link to post Share on other sites
Marshal Posted April 22, 2013 Report Share Posted April 22, 2013 {* Количество *} <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> Quote Link to post Share on other sites
Brigadir Posted April 24, 2013 Report Share Posted April 24, 2013 вариант на jquery ) $('input.input_sm').keyup(function () { $('.pricee').html($('.price').html() * $('input.input_sm').attr('value')); });Обновление по какой-то причине не происходит (только по нажатию Enter). Ваш код не изменял, прописал в точности как в комментариях. Поможете? Quote Link to post Share on other sites
Kosjak76 Posted April 24, 2013 Report Share Posted April 24, 2013 Уважаемый, давайте ссылку на сайт... Иначе кто вас знает, что вы там накуролесили))) Экстрасенсов я здесь не видел. Quote Link to post Share on other sites
Marshal Posted April 24, 2013 Report Share Posted April 24, 2013 Обновление по какой-то причине не происходит (только по нажатию Enter). Ваш код не изменял, прописал в точности как в комментариях. Поможете? ДаваЙ! надо бы глянуть твой карт тпл! Quote Link to post Share on other sites
Marshal Posted April 24, 2013 Report Share Posted April 24, 2013 Ребята у меня вот такая незадача! я все сделал без обновления, НО , у меня в корзине ввод количества идет через 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> Quote Link to post Share on other sites
Kosjak76 Posted April 24, 2013 Report Share Posted April 24, 2013 А он так и должен работать... А как по другому? Если надо набрать 20, то он что, должен срабатывать после двойки? :-) Quote Link to post Share on other sites
Brigadir Posted April 24, 2013 Report Share Posted April 24, 2013 А он так и должен работать... А как по другому? Если надо набрать 20, то он что, должен срабатывать после двойки? :-) Хотелось бы получить динамический пересчёт по keyup... Это было бы здорово. Quote Link to post Share on other sites
Marshal Posted April 25, 2013 Report Share Posted April 25, 2013 Проснулся таже идея появилась) но не все так гладко! оно что то изредка меняет, но совсем не в тему! Quote Link to post Share on other sites
Marshal Posted April 25, 2013 Report Share Posted April 25, 2013 А он так и должен работать... А как по другому? Если надо набрать 20, то он что, должен срабатывать после двойки? :-) Именно так ! Quote Link to post Share on other sites
Brigadir Posted April 25, 2013 Report Share Posted April 25, 2013 В принципе, можно добавить кнопку "Обновить корзину" или перед иконкой удаления вставить что-то типа этого: . Только вот незадача: скрипт срабатывает на клике в любом месте после изменения значения в input, а нужно чтобы срабатывал по конкретному запросу. Как сделать? Quote Link to post Share on other sites
Brigadir Posted April 25, 2013 Report Share Posted April 25, 2013 При этом, обновление должно произойти по всем позициям одновременно. Quote Link to post Share on other sites
1129976 Posted May 20, 2014 Report Share Posted May 20, 2014 вариант на jquery ) $('input.input_sm').keyup(function () { $('.pricee').html($('.price').html() * $('input.input_sm').attr('value')); }); Куда вот это надо вставить? Quote Link to post Share on other sites
Vanger Posted June 26, 2015 Report Share Posted June 26, 2015 (edited) а если этот вариант допилить? рипал с одного сайтачто-то мешает блин (или вывод цены не так идёт 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> Edited June 26, 2015 by Vanger Quote Link to post Share on other sites
gansito Posted February 1, 2017 Report Share Posted February 1, 2017 Сделал так заменил в шаблоне 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="+"> куда копать? Quote Link to post Share on other sites
Kosjak76 Posted February 1, 2017 Report Share Posted February 1, 2017 Копать однозначно в сторону джаваскрипта))Если у вас получается менять значение, но при этом не сабмитится форма - копайте в сторону .trigger('change') Quote Link to post Share on other sites
gansito Posted February 10, 2017 Report Share Posted February 10, 2017 Копать однозначно в сторону джаваскрипта))Если у вас получается менять значение, но при этом не сабмитится форма - копайте в сторону .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> Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.