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('Повторите заказ');
}
}
);
...
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как сделать так, чтобы после обновления статуса заказа на "обработка", выполнялся мой код? Как вообще можно отловить изменение статуса? Это...
есть массив, в нем есть текст в котором находятся ссылки, и есть просто текст
Имеется в разработке небольшой сервис для статистикиСуть задачи на кроне - это съем позиций с яндекса
В файле captchaphp я создаю gif изображения с помощью библиотеки GD и вывожу его в форме для отправки комментария к статье