Как передать список продуктов из JS в PHP?
у меня есть форма и список продуктов. Я передаю форму с помощью PHPMailer на почту, но не совсем понимаю как мне передать список заказанных продуктов. Список продуктов подгружается на страницу из localStorage. Могу ли я как-то передать данные из локального хранилища в PHP?
Это JS:
e.preventDefault();
const formAction = form.getAttribute('action') ? form.getAttribute('action').trim() : '#';
const formMethod = form.getAttribute('method') ? form.getAttribute('method').trim() : 'GET';
const formData = new FormData(form);
form.classList.add('_sending');
const response = await fetch(formAction, {
method: formMethod,
body: {
'formData': formData
}
})
Это одна карточка продукта, их может быть много (в localStorage хранится такая же HTML разметка):
<li data-cart-pid="2-750" class="cart-header__item item-cart">
<a href="" class="item-cart__image _ibg">
<img src="img/products/product.png" alt="Мед">
</a>
<div class="item-cart__content">
<div class="item-cart__info">
<a href="" class="item-cart__title">
<span class="item-cart__name">Мед</span>,
<span class="item-cart__weigh">750г</span>
</a>
</div>
<div class="item-cart__quantity">
<button type="button" class="item-cart__button item-cart__button_minus">-</button>
<div class="item-cart__input">
<span>4</span>
</div>
<button type="button" class="item-cart__button item-cart__button_plus">+</button>
</div>
</div>
<div class="item-cart__control">
<div class="item-cart__price">
<span>600</span>
</div>
<div class="item-cart__delete">
<span>
</span>
</div>
</div>
</li>
Ответы (1 шт):
Просто читаете из localStorage свои данные по ключу (по которому они туда записаны) https://learn.javascript.ru/localstorage и отправляете в body отдельным параметром
const response = await fetch(formAction, {
method: formMethod,
body: {
'formData': formData,
'storage': <your-storage-data>
}
})
а на бэке считываете этот параметр и встраиваете в текст письма
Upd: Попробуйте тогда в саму formData запушить код как доп.поле
const formData = new FormData(form);
formData.append('storage', <your-storage-data>);
const response = await fetch(formAction, {
method: formMethod,
body: formData
})