var cart = {};
function loadCart() {
//проверяю есть ли в localStorage запись car
if (localStorage.getItem('cart')) {
//если есть - расшифровываю и записываю в переменную cart
cart = JSON.parse(localStorage.getItem('cart'));
showCart();
showMiniCart();
}
else {
$('.cart_nulled').html('<div>Корзина пуста. Добавьте товар в корзину - <a href="catalog.html">Перейти в каталог</a></div>');
$('.table-cart').html('<style="display: none;">');
}
}
function showCart() {
//вывод корзины
if (!isEmpty(cart)) {
$('.cart_nulled').html('<div>Корзина пуста. Добавьте товар в корзину - <a href="catalog.html">Перейти в каталог</a></div>');
$('.table-cart').html('<style="display: none;">');
$('.total').html(0);
}
else {
$.getJSON('goods.json', function (data) {
var goods = data;
var out = '';
var total = 0;
for (var id in cart) {
out+= '<tr>';
out+= '<td>';
out+= '<p class="tovar_name">'+goods[id].name+'</p>';
out+= '<p class="tovar_manufacturer">'+goods[id].manufacturer+'</p>';
out+= '<p class="tovar_country">'+goods[id].country+'</p>';
out+= '</td>';
out+= '<td>';
out+= '<button class="minus-goods" data-id="'+id+'">-</button>';
out+= cart[id];
out+= '<button class="plus-goods" data-id="'+id+'">+</button>';
out+= '</td>';
out+= '<td class="tovar_cost">от '+goods[id].cost+' ₽</td>';
out+= '<td class="tovar_cost">от '+cart[id]*goods[id].cost+' ₽</td>';
total+= goods[id].cost*cart[id];
out+= '<td><button class="del-goods" data-id="'+id+'">x</button></td>';
out+= '</tr>';
}
$('.cart').html(out);
$('.del-goods').on('click', delGoods);
$('.minus-goods').on('click', minusGoods);
$('.plus-goods').on('click', plusGoods);
$('.total').html(''+total+'');
});
}
}
function delGoods() {
//удаляем товар из корзины
var id = $(this).attr('data-id');
delete cart[id];
saveCart();
showCart();
showMiniCart();
}
function minusGoods() {
//уменьшаем товар из корзины
var id = $(this).attr('data-id');
if (cart[id]==1) {
delete cart[id];
}
else {
cart[id]--;
}
saveCart();
showCart();
showMiniCart();
}
function plusGoods() {
//добавляем товар из корзины
var id = $(this).attr('data-id');
cart[id]++;
saveCart();
showCart();
showMiniCart();
}
function saveCart() {
//сохраняю корзину в localStorage
localStorage.setItem('cart', JSON.stringify(cart));
}
function isEmpty(object) {
//проверка корзины на пустоту
for (var key in object) {
if (object.hasOwnProperty(key)) return true;
return false;
}
}
function showMiniCart(){
//показываю содержимое корзины
var out = Object.keys(cart).length;
$('.mini-cart').html(out);
}
function sendEmail() {
var ename = $('#ename').val();
var ephone = $('#ephone').val();
var email = $('#email').val();
var emessage = $('#emessage').val();
var number_apteka= $('#number_apteka').val();
if (ename!='' && email!='' & ephone!='') {
if (isEmpty(cart)) {
$.post(
"core/mail.php",
{
"ename" : ename,
"ephone" : ephone,
"email" : email,
"emessage" : emessage,
"number_apteka" : number_apteka,
"cart" : cart
},
function(data) {
if (data==1) {
alert('Ваш заказ принят!');
}
else {
alert('Повторите заказ');
}
}
);
}
else {
alert('Корзина пуста');
}
}
else {
alert('Заполните поля');
}
}
$(document).ready(function () {
loadCart();
$('.send-email').on('click', sendEmail); // отправить письмо с заказом
})
Подскажите пожалуйста, как после отправки письма, сделать сброс корзины и мини-корзины, а также очистить поля формы. Пробовал очищать localStorage после отправки, но в мини-корзине товары остаются.
function sendEmail() {
...
$.post(
"core/mail.php",
{
"ename" : ename,
"ephone" : ephone,
"email" : email,
"emessage" : emessage,
"number_apteka" : number_apteka,
"cart" : cart
},
function(data) {
if (data==1) {
alert('Ваш заказ принят!');
document.querySelectorAll("form").forEach(f => f.reset());
cart = {};
saveCart();
showCart();
showMiniCart();
}
else {
alert('Повторите заказ');
}
}
);
...
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Как сделать так, чтобы после обновления статуса заказа на "обработка", выполнялся мой код? Как вообще можно отловить изменение статуса? Это...
есть массив, в нем есть текст в котором находятся ссылки, и есть просто текст
Имеется в разработке небольшой сервис для статистикиСуть задачи на кроне - это съем позиций с яндекса
В файле captchaphp я создаю gif изображения с помощью библиотеки GD и вывожу его в форме для отправки комментария к статье