корзина на сайте сохранить информацию о товарах - PullRequest
1 голос
/ 04 августа 2020

Я делаю небольшой веб-сайт по продаже футболок. В настоящее время я застрял в изготовлении тележки. Я просто пролистал oop элементы, чтобы получить информацию о них, но у моих продуктов есть личные HTML файлы для них, так что это выглядит как store / product_1. В этом случае мой итератор не сохраняет, и я получаю информацию только о первом продукте.

"use strict";

let carts = document.querySelectorAll(".cart-button");

let products = [
  {
    name: "t-shirt 1",
    tag: "tshirt1",
    price: 20,
    inCart: 0,
  },

  {
    name: "t-shirt 2",
    tag: "tshirt2",
    price: 30,
    inCart: 0,
  },

  {
    name: "t-shirt 3",
    tag: "tshirt3",
    price: 40,
    inCart: 0,
  },
];

for (let i = 0; i < carts.length; ++i) {
  carts[i].addEventListener("click", () => {
    cartQuantity(products[i]);
  });
}

function cartQuantity(product) {
  console.log("the products is", product);
  let productQuantity = localStorage.getItem("cartQuantity");
  productQuantity = parseInt(productQuantity);

  if (productQuantity) {
    localStorage.setItem("cartQuantity", productQuantity + 1);
  } else {
    localStorage.setItem("cartQuantity", 1);
  }

  setItems(product);
}

function setItems(product) {
  product.inCart = 1;

  let cartItems = {
    [product.tag]: product,
  };

  localStorage.setItem("productsInCart", JSON.stringify(cartItems));
}

$(".icon-btn").on("click", function (e) {
  e.preventDefault();
  $(".cart-container").toggleClass("cart_active");
});

так выглядит страница https://imgur.com/a/25WLpPK

HTML страницы продукта

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title></title>
    <link href="/CSS/style.css" rel="stylesheet">
    <link
        href="https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100;0,200;0,300;0,400;0,600;0,800;1,100;1,200;1,300;1,600;1,800&display=swap"
        rel="stylesheet">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
        integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
        integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous">
    </script>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"
        integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous">
    </script>

    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"
        integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous">
    </script>
    <script src="/Script/store.js" async></script>
</head>

<body id="cont">
    <header id="header-section">
        <h1 class="banner-header"><a class="banner-link" href="/HTML/main.html">either</a></h1>
    </header>
    <div class="menu">
        <ul class="nav-bar">
            <li class="nav-bar-item"><a class="item-link" href="/HTML/about.html">About Us</a></li>
            <li class="nav-bar-item"><a class="item-link" href="/HTML/store.html">Store</a></li>
            <li class="nav-bar-item"><a class="item-link" href="/HTML/faq.html">FAQ</a></li>
        </ul>
    </div>

    <div class="cart-container">
        <a href="#" class="icon-btn"></a>
        <div class="cart">
            <h2 class="cart-h">Cart</h2>
            <div class="items"></div>
            <div class="promo-field">
                <input class="promo-input" type="text" placeholder="promocode">
                <button class="promo-button">Confirm</button>
            </div>
        </div>
    </div>

    <div class="desc-container">
        <img class="preview-product-image" src="/Images/t_shirt_art.png" style="margin-right: 150px;">
        <div class=" desc-box">
            <h2>Product Name</h2>
            <div class="price-tag">
                <span class="price">20 USD</span>
            </div>
            <p class="desc-text">
                Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
                dolore magna aliqua.
            </p>

            <div class="size-table">
                <button class="size">xs</button>
                <button class="size">s</button>
                <button class="size">m</button>
                <button class="size">l</button>
                <button class="size">xl</button>
                <button class="size">xxl</button>
                <button class="size">xxxl</button>
            </div>

            <div class="colors">
                <div class="color" style="background-color: #e1e851"></div>
                <div class="color" style="background-color: #8cd147"></div>
                <div class="color" style="background-color: #4a9ccf"></div>
                <div class="color" style="background-color: #661f45"></div>
                <div class="color" style="background-color: #1e2024"></div>
            </div>
            <button class="cart-button cart1">
                Add to cart
            </button>
        </div>
    </div>


    <footer id="footer_section">
        <div class="left-side">
            <h3 class="logo_text">either</h3>
        </div>
    </footer>

</body>

</html>

после нажатия кнопки «Добавить в корзину» У меня есть это в моем локальном хранилище

{tshirt1: {name: "t-shirt 1", tag: "tshirt1", price: 20, inCart: 1}}
tshirt1: {name: "t-shirt 1", tag: "tshirt1", price: 20, inCart: 1}
inCart: 1
name: "t-shirt 1"
price: 20
tag: "tshirt1"

Я тоже своего рода пустышка, поэтому я следил это руководство

Мне нужно, чтобы тележка работала правильно, поэтому после нажатия кнопки «Добавить в корзину» для 2-го продукта я могу получить информацию о нем, то же самое с 3-м и т. Д. c .

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