@Alycia17

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

Я получаю count сессии корзины, но счетчик обновляется только после перезагрузки страницы. Как сделать, что бы количество товара в корзине обновлялось без перезагрузки, а сразу после нажатия кнопки добавить в корзину?
#Добавляю товар в корзину 
$(document).ready(function(){

	$("#add_to_cart").on('click', function() {
		var article = $("#article").val();
		var size = $("#size").val();
		var quantity = $("#quantity").val();
		
		$.ajax({
			url: window.location.href,
			type: 'POST',
			data: { 'article': article, 
					'size': size, 
					'quantity': quantity
				},
			 beforeSend: function(){
				$("#add_to_cart").prop("disabled", true);
			},
			dataType: 'html',
		})
	});
});

#Пытаюсь обновить счетчик
var session;
$.ajaxSetup({cache: false})
$.get('includes/header.php', {requested: 'foo'}, function (data) {
    session = data;
});

if (isset($_GET['requested'])) {
    echo $_SESSION[$_GET['requested']];
} else {
    echo count($_SESSION['cart']);
}
  • Вопрос задан
  • 328 просмотров
Пригласить эксперта
Ответы на вопрос 1
Avilona
@Avilona
у Jquery.ajax есть коллбек .done, вы можете вызывать его в запросе, получать свой счетчик и сразу обновлять, например:

#Добавляю товар в корзину 
$(document).ready(function(){

  $("#add_to_cart").on('click', function() {
    var article = $("#article").val();
    var size = $("#size").val();
    var quantity = $("#quantity").val();
    
    $.ajax({
      url: window.location.href,
      type: 'POST',
      data: { 'article': article, 
          'size': size, 
          'quantity': quantity
        },
       beforeSend: function(){
        $("#add_to_cart").prop("disabled", true);
      },
      dataType: 'html',
      .done(function(data) {
         //здесь находим html-элемент содержащий информацию о добавленных в корзину товарах и присваиваем ему новое значение
       })
    })
  });
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы