Добавить новый элемент с той же формой в существующее хранилище сеансов

У меня есть форма, которая вызывается через модальное окно каждый раз, когда пользователь нажимает кнопку. Он используется здесь: http://fromlandmark.com/projects/VacuumStore/product.php

Каждый раз, когда я вызываю форму с помощью кнопки "Remplir...", я добавляю элемент в sessionStorage.

Проблема в том, что позже я хочу добавить еще один элемент с той же формой, и sessionStorage обновляется новыми значениями. Я хочу добавить новый элемент, чтобы иметь возможность отображать список корзины покупок позже.

Это фрагмент кода, который сохраняет значения входных данных и добавляет их в хранилище:

$('.submit-message').click(function (e) {
  e.preventDefault();
  //message
  var productID = $('.modal').attr('product-name');
  var productImg = $('.product-image').attr('src');
  var message = $('#message').val();

  // from inputs
  var fromName = $('#from-name-input').val();
  var fromLastName = $('#from-last-name-input').val();
  var fromAddress = $('#from-address-input').val();
  var fromCountry = $('#from-country-input').val();
  var fromCity = $('#from-city-input').val();
  var fromPostalCode = $('#from-postalcode-input').val();
  var fromPhone = $('#from-phone-input').val();

  // to inputs
  var toName = $('#to-name-input').val();
  var toLastName = $('#to-last-name-input').val();
  var toAddress = $('#to-address-input').val();
  var toCountry = $('#to-country-input').val();
  var toCity = $('#to-city-input').val();
  var toPostalCode = $('#to-postalcode-input').val();
  var toPhone = $('#to-phone-input').val();

  let productInfo = {
    FromName: fromName,
    FromLastName : fromLastName, 
    FromAdress: fromAddress,
    FromCountry: fromCountry,
    FromCity: fromCity,
    FromPostCode: fromPostalCode,
    FromPhone : fromPhone,
    FromName: toName,
    ToLastName : toLastName, 
    ToAdress: toAddress,
    ToCountry: toCountry,
    ToCity: toCity,
    ToPostCode: toPostalCode,
    ToPhone : toPhone,

    Message: message,
    Product: productImg,
    ProductID : productID

  };

  sessionStorage.setItem('productList', JSON.stringify(productInfo));
  var storedProductList = JSON.parse(sessionStorage.getItem('productList')); 
  })

1 ответ

Хранить список продуктов в хранилище сеансов в виде массива JSON.

Начальное десериализованное значение из списка продуктов: null и по умолчанию должен быть массив.

var storedProductList = JSON.parse(
  sessionStorage.getItem('productList')) || [];

Добавить productInfo в этот массив.

storedProductList.push(productInfo);

Наконец, сохраните это в хранилище сеанса.

sessionStorage.setItem('productList', 
JSON.stringify(storedProductList));
Другие вопросы по тегам