function getCart(){ //запрос содержимого корзины с сервера $.post('/cart/show').done(function(res){showCart(res)}).fail(function(){ alert('Error! Ошибка получения корзины'+res)}); } function showCart(cart) { // отображение содержимого корзины в модальном окне $('#cart .modal-body').html(cart); $('#cart').modal(); } function clearCart(){ //функция для очистки корзины $.post('/cart/clear').done(function(res){renewCart(); showCart(res);}).fail(function(){alert('Error clearCart')}); } function renewCart(){ // функция для обновления итога корзины $.ajax({ url: '/cart/rechange', type: 'POST', dataType: 'json', data: {_csrf: yii.getCsrfToken()}, success: function(res){ $('#cart_qty').html(res[0]); //это количество товаров в модальной корзине $('#cart_sum_modal').html(res[0]=='' ? '' : res[1]+" руб."); //это сумма итого в модальной корзине $('#price2_rub').html(res[0]=='' ? '' : number_format(res[1],0,'',' ')+" руб."); // этонижняя корзина var tovar= String(res[0]).length==1? String(res[0]) : (String(res[0]).substr(-2,1)!=1)? String(res[0]).substr(-1,1) : 9; $('#price3_rub').html(res[0]=='' ? '' : res[0]+" "+(tovar==1 ? 'товар' : (tovar>1 && tovar<5) ? 'товара' : 'товаров')+"
"+number_format(res[1],0,'',' ')+" руб."); // это верхняя корзина }, error: function(res){var str= res['responseText'];} }); } function changeCart(id, qty) { //передает серверу информацию об изменении корзины при корректировке количества товара в модальном окне $.post('/cart/change', {id: id, qty: qty}).done(function(res){renewCart()}).fail(function() {alert('Error changeCart')}) }; $('#cart .modal-body').on('click', '.del-item', function(){// функция для удаления товара из модального окна $.post('/cart/del-item',{id: $(this).data('id')}).done(function(res){renewCart(); showCart(res)}).fail(function(){alert('Error modal!')}) }); $('.add-to-cart').on('click', function (e) { //функция для добавления товара в корзину e.preventDefault(); var str=''; $.post('/cart/add', {id: $(this).data('id'), qty: Math.abs($('#qty').val())}).done(function () {renewCart(); flyProduct(e)}).fail(function (res) {for(k in res) { str += k+": "+ res[k]+"\r\n"; } /*alert("Ошибка добавления в корзину!"+str)*/}) }); function addToCartNew(id, qty, event) { var str=''; $.post('/cart/add', {id: id, qty: qty}) .done(function () {renewCart(); flyProduct(event)}) .fail(function (res) {for(k in res) { str += k+": "+ res[k]+"\r\n"; } }) }; function number_format(number, decimals, dec_point, thousands_sep) {//number -исходное число, decimals -количество знаков после разделителя, dec_point - разделитель, thousands_sep - разделитель тысячных var number = (number + '').replace(/[^0-9+\-Ee.]/g, ''); var n = !isFinite(+number) ? 0 : +number; var prec = !isFinite(+decimals) ? 0 : Math.abs(decimals); var sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep; var dec = (typeof dec_point === 'undefined') ? '.' : dec_point; var s = ''; toFixedFix = function(n, prec) {var k = Math.pow(10, prec); return '' + (Math.round(n * k) / k) .toFixed(prec)}; s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)) // Fix for IE parseFloat(0.55).toFixed(0) = 0; .split('.'); if (s[0].length > 3) s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep); if ((s[1] || '') .length < prec) { s[1] = s[1] || ''; s[1] += new Array(prec - s[1].length + 1) .join('0');} return s.join(dec); } function flyProduct(event) { console.log(event); console.log(event.offsetTop); console.log(event.clientLeft); $('body').append(''); $('.animtocart').css({'left': event.clientX-25,'top' : event.clientY-25}); var cart = $('.korzina_verh').is(':visible') ? $('.korzina_verh').offset() : $('.korzina_niz').offset(); $('.animtocart').animate({top: cart.top - window.pageYOffset + 'px', left: cart.left + 'px', width:25, height:25}, 800, function(){$('.animtocart').remove()}); }