$(function () { var $form = $('#submitKoszykForm'); var $inputs = $form.find('.basket-amount'); var $basket_box = $('.basket-box span'); var cached_rows = {}; var ajax_queue = null; var ajax_queue_time = 500; var ajax_waiting = null; var successCallback = function (basket) { var hashes = Object.keys(cached_rows); var total_price = String((+basket.total_value).toFixed(2)).replace('.', ','); var found = 0; if (!basket || !basket.html) { addAlert('Nie udało się zmienić ilości produktów w koszyku!', 'danger'); return false; } $(hashes).each(function (_ignore, hash) { var data = basket.html[hash]; var $row = cached_rows[hash]; if (!$row) { return; } if (!data) { $row.fadeOut(250, (function () { $(this).remove(); }).bind($row)); return; } $row.find('.basket-price-single').html(data[0]); $row.find('.basket-price-sum').html(data[1]); found += 1; }); if (found === 0) { location.href = location.href; } $form.find('.totalPrice').html(basket.total_value_html); $('.free-shipment-box p').html(basket.free_shipment_string); $basket_box.html('koszyk ('+ basket.total_amount +')
'+ total_price +' zł
'); // addAlert('Zmieniono ilości produktów w koszyku!', 'success'); }; var sendUpdateRequest = function () { if (ajax_waiting) { ajax_waiting.abort(); } if (ajax_queue) { window.clearTimeout(ajax_queue); } ajax_queue = window.setTimeout(function () { ajax_waiting = $.ajax({ url: $form.attr('action'), type: 'post', data: $form.serialize() + '&ajax=1', success: successCallback, cache: false, dataType: 'json' }); }, ajax_queue_time); }; $inputs.on('change', function () { sendUpdateRequest(); }); $inputs.each(function (_ignore, input) { var $input = $(input); cached_rows[$input.data('hash')] = $input.closest('tr'); }); });