首页 > 解决方案 > 将具有相同表单的新项目添加到现有的会话存储中

问题描述

我有一个表单,只要用户是按钮,它就会通过模态调用。它在这里使用: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')); 
  })

标签: javascriptphpjquerysession-storagenew-item

解决方案


将产品列表作为 JSON 数组存储在会话存储中。

产品列表的初始反序列化值是null并且应该默认为数组。

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

追加productInfo到这个数组。

storedProductList.push(productInfo);

最后,将其存储到会话存储中。

sessionStorage.setItem('productList', 
JSON.stringify(storedProductList));

推荐阅读