Задать вопрос
Awake_Pulse
@Awake_Pulse
Делаю вид, что умею программировать

Как в localStorage правильно записывать значения?

Есть страница, где содержится товар и кнопка "добавить в корзину". При нажатии на кнопку, ID-товара (взятый из БД) записывается в localStorage. Проблема в том, что я не пойму, как правильно реализовать key для записи в него value(которое соответствует ID'шнику товара). В JS-файле, я обозначил keyName как 'products'. И теперь, при добавлении значения, ему присваивается постоянно ключ products. Т.е. добавляю, к примеру, товар с ID = 1. Получаю в lS "products" со значением "1". Добавляю товар с ID = 2, значение "products" в lS перезаписывается с "1" на "2" и т.п.

Вот код от страницы с продуктом:

<h1><i><?=Html::encode($product->product_name)?></i></h1>
<p><img src="https://i.blogs.es/96715c/screenshot_5596/450_1000.jpeg" alt="Sony PlayStation 5" style="width:350px; height:290px" class="leftimg"></p>

<fieldset>
    <legend><b> Описание продукта </b></legend>
    <p><?=Html::encode($product->info)?></p>
</fieldset>

<button class="k"><a class="product_link_id" data-id="<?php echo $product->ID?>">Купить</a></button>
/*
<script>
    const btn = document.querySelector('.k > a');
    btn.addEventListener('click', function () {
        btn.innerHTML = 'Уже в корзине'
    });
</script>
*/
<?=Html::encode($product->product_price)?> рублей.


А вот код JS скрипта добавления товара в localStorage:

let count = {

};

this.keyName = 'products';

// Получаю ID'шник кнопки.
document.querySelector('.product_link_id').onclick = () => {
    getItemId(event.target.dataset.id);
};

// Убираю object Object из localStorage
localStorage.setItem(this.keyName, JSON.stringify(count));
const di = localStorage.getItem(this.keyName);
id = JSON.parse(di);

// Добавление товара в корзину
const getItemId = id => {
    count[id]++;
    console.log(localStorage.setItem(this.keyName, id));
};


Я так понимаю, это из-за того, что 'keyName' у меня просто статистически забит как 'products'. Но вот как сделать это по-другому, я не особо шарю.
  • Вопрос задан
  • 456 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
localStorage.setItem(this.keyName, JSON.stringify(count));
const di = localStorage.getItem(this.keyName);
id = JSON.parse(di);

ты понимаешь что твой код делает?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы