Перейти к содержимому


Проблема С Корзиной (Движение)


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 16

#1 zvrv

zvrv

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 174 сообщений
  • ГородЯрославль

Отправлено 13 Август 2014 - 09:51

Прошу помощи, так как у самого мозг уже закипает. Дело в том, что из корзины не возможно удалить товар нормальным образом. При нажатии на кнопку удаления выскакивает ошибка JS и ни чего не происходит, а если страницу обновить, то товар удалится сам собой. Я грешил на себя, что напортачил где-то в коде, но самое интересное, шаблон РАБОТАЕТ нормально НА ДРУГИХ САЙТАХ. В чем дело я не понимаю, помогите разобраться.
Соответственно ссылки моего сайта и того на котором удаление работает (шаблон залит один и тот же, вплоть до запятой) :
http://mircvetov76.ru
http://s1119749.storeland.ru

#2 Alekseys

Alekseys

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 2 355 сообщений

Отправлено 13 Август 2014 - 10:13

Здравствуйте. Попробуйте очистить кэш. Если не поможет укажите пожалуйста в каком браузере возникает данная ошибка и, если можно, пришлите скриншот.

#3 zvrv

zvrv

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 174 сообщений
  • ГородЯрославль

Отправлено 13 Август 2014 - 10:25

Просмотр сообщенияAlekseys (13 Август 2014 - 10:13) писал:

Здравствуйте. Попробуйте очистить кэш. Если не поможет укажите пожалуйста в каком браузере возникает данная ошибка и, если можно, пришлите скриншот.
Кэш чистил. Данная проблема не имеет привязки к браузеру, так как в одном и том же браузере на одном сайте удаление работает, а на другом нет.
После нажатия УДАЛИТЬ на mircvetov76.ru
mircvetov76.png

то же самое на s1119749.storeland.ru
1111.png

#4 Castiel

Castiel

    Активный участник

  • Модераторы
  • 3 519 сообщений
  • ГородНижний Новгород

Отправлено 13 Август 2014 - 10:41

Просмотр сообщенияzvrv (13 Август 2014 - 10:25) писал:

Кэш чистил. Данная проблема не имеет привязки к браузеру, так как в одном и том же браузере на одном сайте удаление работает, а на другом нет.
После нажатия УДАЛИТЬ на mircvetov76.ru
Прикрепленный файл mircvetov76.png

то же самое на s1119749.storeland.ru
Прикрепленный файл 1111.png

Здравствуйте, проблему повторить не удалось, пожалуйста попробуйте воспользоваться другим браузером и сообщить результаты.

#5 zvrv

zvrv

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 174 сообщений
  • ГородЯрославль

Отправлено 13 Август 2014 - 10:48

Просмотр сообщенияCastiel (13 Август 2014 - 10:41) писал:

Здравствуйте, проблему повторить не удалось, пожалуйста попробуйте воспользоваться другим браузером и сообщить результаты.
В IE и FF то же самое происходит.
Вот что выдал firebug
222.png

#6 AnnaM

AnnaM

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 1 040 сообщений

Отправлено 13 Август 2014 - 11:39

Просмотр сообщенияzvrv (13 Август 2014 - 10:48) писал:

В IE и FF то же самое происходит.
Вот что выдал firebug
Прикрепленный файл 222.png
на данный момент удаление из корзины на сайте mircvetov76.ru работает корректно во всех браузерах.

#7 zvrv

zvrv

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 174 сообщений
  • ГородЯрославль

Отправлено 13 Август 2014 - 11:42

Просмотр сообщенияAnnaM (13 Август 2014 - 11:39) писал:

на данный момент удаление из корзины на сайте mircvetov76.ru работает корректно во всех браузерах.
Допустим, но постом выше FF показывает ошибку в файле main.js, строка 831. Помогите исправить

#8 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 14 Август 2014 - 00:48

Попробуйте очистить кэш в вашем браузере, так как на вашем сайте не удается найти ошибку javascript. Так же вы можете проверить отображение ошибки в другом браузере. Если ошибка все же будет повторятся,  то сообщите на какой именно странице появляется информация об ошибке.

#9 zvrv

zvrv

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 174 сообщений
  • ГородЯрославль

Отправлено 14 Август 2014 - 18:34

Просмотр сообщенияСake (14 Август 2014 - 00:48) писал:

Попробуйте очистить кэш в вашем браузере, так как на вашем сайте не удается найти ошибку javascript. Так же вы можете проверить отображение ошибки в другом браузере. Если ошибка все же будет повторятся,  то сообщите на какой именно странице появляется информация об ошибке.
Кэш чистил, пробовал в разных браузерах, одно и тоже, выскакивает ошибка на странице корзины, при попытке удалить товар выдает ошибку в main.js, указывает на функцию удаления товара (deleteCartItem), пишет "message is not defined". Если вместо переменной message подставить конкретную фразу, то функция перестает работать на переменной message_type, если же и вместо message_type подставить например success, то тогда функция срабатывает, товар удаляется, только сумма корзины не пересчитывается (TOTAL_PRICE)

#10 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 15 Август 2014 - 00:12

Ошибка возникает именно на странице /cart или же в каком-то всплывающем окне? Судя по вашему сайту у вас используется несколько вариантов отображения корзины, как в шапке, так и в быстром заказе. К сожалению, не удается найти описываемую вами ошибку. Вы не убираете изменения? Опишите подробнее порядок действий для обнаружения ошибки.

#11 zvrv

zvrv

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 174 сообщений
  • ГородЯрославль

Отправлено 15 Август 2014 - 07:43

Просмотр сообщенияСake (15 Август 2014 - 00:12) писал:

Ошибка возникает именно на странице /cart или же в каком-то всплывающем окне? Судя по вашему сайту у вас используется несколько вариантов отображения корзины, как в шапке, так и в быстром заказе. К сожалению, не удается найти описываемую вами ошибку. Вы не убираете изменения? Опишите подробнее порядок действий для обнаружения ошибки.
Изменения не убираю. Действия такие: заходим на главную, нажимаем на кнопку "быстрый заказ" любого товара, всплывает окно, закрываем его, переходим в корзину /cart, пытаемся удалить товар нажав на крестик слева от изображения товара, вот тут у меня во всех браузерах с чищенным кэшем возникает выше описанная ошибка. Позже выложу видео с экрана.

#12 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 16 Август 2014 - 00:42

К сожалению, воспроизвести ошибку не удается. Товар из корзины удаляется с сообщением "Товар «Название» успешно удалён из корзины". Если у вас возникает ошибка связанная с переменной message, то значит у вас выполняется запрос на удаление товара не правильно. В данном случае желательно пронаблюдать отправляемый запрос на удаление товара. Попробуйте в момент удаления товара из корзины посмотреть выполняемый запрос на сервер с помощью инструмента разработчика. Если использовать браузер firefox, то воспользуйтесь плагином firebug или же стандартным инспектором. Перейдите на вкладку консоль или сеть для просмотра выполняемых запросов. Предположить почему у вас возникает данная ошибка проблематично, так как не удается её воспроизвести. Если вы кэш чистили, то видимо дело не в нем.

screen2.png

#13 zvrv

zvrv

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 174 сообщений
  • ГородЯрославль

Отправлено 17 Август 2014 - 09:50

Просмотр сообщенияСake (16 Август 2014 - 00:42) писал:

К сожалению, воспроизвести ошибку не удается. Товар из корзины удаляется с сообщением "Товар «Название» успешно удалён из корзины". Если у вас возникает ошибка связанная с переменной message, то значит у вас выполняется запрос на удаление товара не правильно. В данном случае желательно пронаблюдать отправляемый запрос на удаление товара. Попробуйте в момент удаления товара из корзины посмотреть выполняемый запрос на сервер с помощью инструмента разработчика. Если использовать браузер firefox, то воспользуйтесь плагином firebug или же стандартным инспектором. Перейдите на вкладку консоль или сеть для просмотра выполняемых запросов. Предположить почему у вас возникает данная ошибка проблематично, так как не удается её воспроизвести. Если вы кэш чистили, то видимо дело не в нем.

Прикрепленный файл screen2.png
Вот что выдает FF
555.png
Сегодня даже специально установил браузер Safari, чтобы исключить всякие там кэши, но в нем происходит тоже самое, товар удаляется только после перезагрузки страницы вручную.

#14 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 19 Август 2014 - 00:09

У вас по какой-то причине удаление товара возвращает статус 200 т.е какое-то содержимое, хотя нормальный статус должен быть 302 Moved Temporarily. Пожалуйста, нажмите на +(плюс в запросе "панель firebug") и приложите скриншот отобразившейся информации или сам текст в виде сообщения.

#15 zvrv

zvrv

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 174 сообщений
  • ГородЯрославль

Отправлено 19 Август 2014 - 10:20

Просмотр сообщенияСake (19 Август 2014 - 00:09) писал:

У вас по какой-то причине удаление товара возвращает статус 200 т.е какое-то содержимое, хотя нормальный статус должен быть 302 Moved Temporarily. Пожалуйста, нажмите на +(плюс в запросе "панель firebug") и приложите скриншот отобразившейся информации или сам текст в виде сообщения.
2014-08-19 11-18-47 Скриншот экрана.png

<script type="text/javascript">(function(){var b=document.createElement("script");b.type="text/javascript";b.src="http://mircvetov.sto...184be&i=-1";var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(b,a);})();</script><noscript><img width="1" height="1" src="http://mircvetov.sto...4be&i=-1&img=1" alt=""/></noscript><script>window.location="http://mircvetov76.r...<noscript><meta http-equiv="refresh" content="1;url=http://mircvetov76.ru/cart" />Если автоматической переадресации не произошло, нажмите сюда: <a href="http://mircvetov76.r...</a></noscript>

#16 Сake

Сake

    Активный участник

  • Модератоpы
  • 5 979 сообщений

Отправлено 20 Август 2014 - 00:47

Попробуйте сделать следующее - в файле main.js найдите код

//ajax удаление товара из корзины
  function deleteCartItem (item_id) {
	$.ajax({
	  cache : false,
	  url : '/cart/delete/' + $('#' + item_id).data('mod-id') + '',
	  success: function(newData) {
		nd = $(newData);
	   
		//выведем сообщения об успешном обновлении корзины
		if (nd.find('.success').length) {
		  message = nd.find('.success').text();
		  message_type = 'success';
		}
		//или сообщение о том, что обновление не удалось
		else if (nd.find('.warning').length) {
		  message = nd.find('.warning').text();
		  message_type = 'error';
		}
		// Если есть функция, которая отображает сообщения пользователю
		if(typeof(noty) == "function") {
		  noty({
			text:message,
			layout:"center",
			type:message_type,
			textAlign:"center",
			easing:"swing",
			animateOpen:{"height":"toggle"},
			animateClose:{"opacity":"hide"},
			speed:"500",
			timeout:"2000",
			closable: false,
			modal: false,
			dismissQueue: true,
			onClose: true,
			killer: true});
		}
		//Удалим товарную позицию
		$('#' + item_id).remove();
			   
		if (nd.find('.item').length) {
		  // Сумма заказа
		  total_price = parseInt($('.cart-total-price .num').html().replace(/\s+/g, ''));
		  new_total_price = parseInt(nd.find('.cart-total-price .num').html().replace(/\s+/g, ''));
		  delta_sum = new_total_price - total_price;
	 
		  // Скидка
		  sale = $(".cart-price-general-sale").length ? parseInt($(".cart-price-general-sale .num").html().replace(/\s+/g, '')) : 0;
		  new_sale = nd.find(".cart-price-general-sale").length ? parseInt(nd.find(".cart-price-general-sale .num").html().replace(/\s+/g, '')) : 0;
		  delta_sale = new_sale - sale;
		 
		  //удалим поле скидки, если оно удалилось
		  newSale = nd.find('.cart-price-general-sale').length ? nd.find('.cart-price-general-sale') : 0;
		  if (!newSale.length && $('.cartForm .cart-price-general-sale').length) {
			$('.cartForm .cart-price-general-sale').parent().parent().remove();
		  }
		 
		  // Визуализируем подсчёт суммы скидки и итоговой суммы
		  var iter = 10; // число итераций смены цен
		  j = 1;
		  $(function priceAnim() {
			if (j > iter) return;
		   
			$('.cart-total-price .price .num').html(number_format(total_price + delta_sum*j/iter, 2, ',', ' '));
			//подправим значение общей стоимости, чтобы она была в изначальном формате
			if ( j == iter ) {
			  $('.cart-total-price .price').html(nd.find('.cart-total-price .price').html());
			}
			if ($(".cart-price-general-sale").length) {
			  $('.cart-price-general-sale .num').html(number_format(sale + delta_sale*j/iter, 2, ',', ' '));
			  if ( j == iter )
				$(".cart-price-general-sale").html(nd.find(".cart-price-general-sale").html());
			   
			  $('.cart-price-sale .num').html(number_format(sale + delta_sale*j/iter, 2, ',', ' '));
			  if ( j == iter )
				$(".cart-price-sale").html(nd.find(".cart-price-sale").html());
			}
					 
			j++;
			setTimeout(priceAnim, 40);
		  });
		}
		else {
		  $('.main_part_wrapper .cart-info').html(nd.find('.main_part_wrapper .cart-info').html());
		}
		$('#header .shopping_cart_block').html(nd.find('.shopping_cart_block').html());
	  },
	  error: function() {
		if(typeof(noty) == "function") {
		  noty({
			text: 'Проблемы с соединением. Повторите попытку позже.',
			layout:"center",
			type: 'error',
			textAlign:"center",
			easing:"swing",
			animateOpen:{"height":"toggle"},
			animateClose:{"opacity":"hide"},
			speed:"500",
			timeout:"2000",
			closable: false,
			modal: false,
			dismissQueue: true,
			onClose: true,
			killer: true});
		}
	  }
	});
  }

и замените его на

//ajax удаление товара из корзины
function deleteCartItem(item_id) {
  $.ajax({
	cache: false,
	url: '/cart/delete/' + $('#' + item_id).data('mod-id') + '',
	success: function (newData) {
	  var callback = function (newData) {
		nd = $(newData);
		//выведем сообщения об успешном обновлении корзины
		if (nd.find('.success').length) {
		  message = nd.find('.success').text();
		  message_type = 'success';
		}
		//или сообщение о том, что обновление не удалось
		 else if (nd.find('.warning').length) {
		  message = nd.find('.warning').text();
		  message_type = 'error';
		}
		// Если есть функция, которая отображает сообщения пользователю
		if (typeof (noty) == 'function') {
		  noty({
			text: message,
			layout: 'center',
			type: message_type,
			textAlign: 'center',
			easing: 'swing',
			animateOpen: {
			  'height': 'toggle'
			},
			animateClose: {
			  'opacity': 'hide'
			},
			speed: '500',
			timeout: '2000',
			closable: false,
			modal: false,
			dismissQueue: true,
			onClose: true,
			killer: true
		  });
		}
		//Удалим товарную позицию
		$('#' + item_id).remove();
		if (nd.find('.item').length) {
		  // Сумма заказа
		  total_price = parseInt($('.cart-total-price .num').html().replace(/\s+/g, ''));
		  new_total_price = parseInt(nd.find('.cart-total-price .num').html().replace(/\s+/g, ''));
		  delta_sum = new_total_price - total_price;
		  // Скидка
		  sale = $('.cart-price-general-sale').length ? parseInt($('.cart-price-general-sale .num').html().replace(/\s+/g, ''))  : 0;
		  new_sale = nd.find('.cart-price-general-sale').length ? parseInt(nd.find('.cart-price-general-sale .num').html().replace(/\s+/g, ''))  : 0;
		  delta_sale = new_sale - sale;
		  //удалим поле скидки, если оно удалилось
		  newSale = nd.find('.cart-price-general-sale').length ? nd.find('.cart-price-general-sale')  : 0;
		  if (!newSale.length && $('.cartForm .cart-price-general-sale').length) {
			$('.cartForm .cart-price-general-sale').parent().parent().remove();
		  }
		  // Визуализируем подсчёт суммы скидки и итоговой суммы
		  var iter = 10;
		  // число итераций смены цен
		  j = 1;
		  $(function priceAnim() {
			if (j > iter) return ;
			$('.cart-total-price .price .num').html(number_format(total_price + delta_sum * j / iter, 2, ',', ' '));
			//подправим значение общей стоимости, чтобы она была в изначальном формате
			if (j == iter) {
			  $('.cart-total-price .price').html(nd.find('.cart-total-price .price').html());
			}
			if ($('.cart-price-general-sale').length) {
			  $('.cart-price-general-sale .num').html(number_format(sale + delta_sale * j / iter, 2, ',', ' '));
			  if (j == iter)
			  $('.cart-price-general-sale').html(nd.find('.cart-price-general-sale').html());
			  $('.cart-price-sale .num').html(number_format(sale + delta_sale * j / iter, 2, ',', ' '));
			  if (j == iter)
			  $('.cart-price-sale').html(nd.find('.cart-price-sale').html());
			}
			j++;
			setTimeout(priceAnim, 40);
		  });
		}
		else {
		  $('.main_part_wrapper .cart-info').html(nd.find('.main_part_wrapper .cart-info').html());
		}
		$('#header .shopping_cart_block').html(nd.find('.shopping_cart_block').html());
	  };
	  if (newData.indexOf('window.location') !== - 1) {
		$.get('/cart', $.proxy(function (callback, newData) {
		  callback(newData);
		}, this, callback));
	  } else {
		callback(newData);
	  }
	},
	error: function () {
	  if (typeof (noty) == 'function') {
		noty({
		  text: 'Проблемы с соединением. Повторите попытку позже.',
		  layout: 'center',
		  type: 'error',
		  textAlign: 'center',
		  easing: 'swing',
		  animateOpen: {
			'height': 'toggle'
		  },
		  animateClose: {
			'opacity': 'hide'
		  },
		  speed: '500',
		  timeout: '2000',
		  closable: false,
		  modal: false,
		  dismissQueue: true,
		  onClose: true,
		  killer: true
		});
	  }
	}
  });
}


#17 zvrv

zvrv

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 174 сообщений
  • ГородЯрославль

Отправлено 20 Август 2014 - 11:43

Сто процентное попадание! Спасибо за помощь, проблема больше не проявляется.




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных