Я получил код, который сохраняет идентификатор продукта в sessionStorage,
$('button#addToCart').on('click', function() {
function checkAndAdd(name, array) {
var found = array.some(function(el) {
return el.id === name;
});
if (!found) {
array.push({
id: name
});
}
}
var cart = [];
var currentCart = sessionStorage.getItem('cart');
var productID = $(this).attr('product');
var product = {
'id': productID,
}
if (currentCart) {
cart.push(currentCart);
var cart = JSON.parse(cart);
checkAndAdd(productID, cart);
} else {
cart.push(product);
}
var quantity = cart.length;
var cart = JSON.stringify(cart);
sessionStorage.setItem('cart', cart);
$('#items_in_cart').html(quantity, function() {
$('#shopping_cart_icon').animateCss('pulse');
});
})
А теперь, как я могу получить это значение "корзины" из сеанса в контроллере?Или как это должно работать в Symfony?Должен ли я использовать Ajax и менеджер сессий в Symfony?
++++ EDITED +++++
Ok i made something like that, this working.
$('button#addToCart').on('click', function() {
function checkAndAdd(name, array) {
var found = array.some(function(el) {
return el.id === name;
});
if (!found) {
array.push({
id: name
});
}
}
var productID = $(this).attr('product');
$.ajax({
url: '/ajax/getcart',
success: function(result) {
var cart = [];
var currentCart = result;
var product = {
'id': productID,
}
if (currentCart.length > 0) {
cart.push(currentCart);
var cart = JSON.parse(cart);
checkAndAdd(productID, cart);
console.log(cart);
} else {
cart.push(product);
}
var quantity = cart.length;
var cart = JSON.stringify(cart);
$('#items_in_cart').html(quantity, function() {
$('#shopping_cart_icon').animateCss('pulse');
});
$.ajax({
url: '/ajax/addtocart',
data: {
'cart': cart,
},
success: function(result) {
console.log(result);
}
});
}
});
})
И я могу передать и получить доступ к сессиям в контроллерах, это правильный способ сделать это?
Мой замысел заключается в том, что я хочу нажать кнопку, добавить в корзину и передать ее менеджеру сессий в Symfony.Тогда, если клиент зайдет в корзину, ядро загрузит продукты из сеанса из контроллера с маршрутизацией / клиент / корзина, это правильно?