Теперь после этого задумался сделать крутую корзину на ajax с занесением в глобальный массив Cart[ ], как раз по практикую ООП, я конечно на нем до этого никогда не писал но начинать то надо когда то))
Мое почтение! Александр, а вы занимаетесь платной разработкой? Мне необходимо в PWA для интернет-магазина реализовать правильную политику кеширования (статика добавляется при просмотре странички пользователем на длительный срок, цены и наличие каждый день)по этому менять для контента версию кеша когда остатки меняются и корзину офлайн(реализация подразумевает что без подключения к интернету покупателю удастся оформить заказ в PWA, а как только интернет появится сервис воркер отправит его на сервер) на данный момент в любой непонятной ситуации будет заглушка с просьбой подключить интернет.
Скажите , а как потом эту корзину добавить на другую страницу? ( в свой магазин) Страница сделана на конструкторе гугл сайтов. Куда потом этот код (корзина) вписывать???
Очень доступное объяснение, спасибо. А как правильно сделать если я хочу ещё считать не только количество а ещё и сумму товаров в корзине? Понятно, что в объект добавить поле price, а вот с самой функцией которая сумму посчитает не совсем понятно???
Спасибо Александр за работу!!! Когда нибудь покажите, как сделать счетчик в корзине, при добавлении товара, чтобы в шапке меню рядом с иконкой корзины появлялось количество.
Есть такое свойство, length у массивов, сколько элементов добавилось в массив по клику, значит столько и товара... Александра обожаю, но здесь бы я делал через индексный массив, без ассоциативных ключей
Добрый день мне нужно создать такую корзину только для чат-бота telegram с использованием конструктора с возможность встраивание действие code на js, только базу данных я беру с google sheets Вопрос этот код можно применить?
Прохожу курсы от GeekBrains и надо сказать вы поясняет просто великолепно, там так не разжевывают и как то все быстро и не понятно, приходится заходить к вам на канал.
Здравствуйте, делал корзину по вашему старому уроку, не подскажите пожалуйста, когда жму минус, вычитываю количество товара в корзине, то если значение доходит до 0, после оно идёт в минус, подскажите пожалуйста, как это можно исправить?Чтобы при значении ниже 1, либо удалялся товар из корзины, либо перекидывало на главную страницу сайта.Буду очень благодарен если ответите! =) ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- var cart = {}; function loadCart() { //Проверка есть ли в localStorage запись cart if (localStorage.getItem('cart')) { //если есть - расшифровываю и записываю в переменную cart cart = JSON.parse(localStorage.getItem('cart')); console.log(isEmpty(cart)); showCart(); } else { $('.main-cart').html('Корзина пуста!'); } } function showCart() { if (!isEmpty(cart)) { $('.main-cart').html('Корзина пуста!') } else { $.getJSON('goods.json', function (data) { var goods = data; var out = ''; for (var id in cart) { out += `x`; out += ``; out += ` ${goods[id].name }`; out += ` -` ; out += `${cart[id] }`; out += ` +` ; out += cart[id]*goods[id].cost; out += ''; } $('.main-cart').html(out); $('.del-goods').on('click', delGoods); $('.plus-goods').on('click', plusGoods); $('.minus-goods').on('click', minusGoods); }); } } function delGoods() { //Удаляем товар из корзины var id = $(this).attr('data-id'); delete cart[id]; saveCart(); showCart(); } function plusGoods() { //Добавляем товар в корзину var id = $(this).attr('data-id'); cart[id]++; saveCart(); showCart(); } function minusGoods() { //Уменьшаем товар в корзине var id = $(this).attr('data-id'); if (cart[id==1]) { delete cart[id]; } else { cart[id]--; } cart[id]--; saveCart(); showCart(); } 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; } $(document).ready(function () { loadCart(); });
@@itgid Учу фронт около года и в принципе с типичными задачами все более менее понятно, даже в связке с React и Redux, но вот есть ощущение что я пол программиста, потому что не знаю бекенд и очень хочется писать фулстек приложения, посоветуйте что перспективнее и вообще лучше для бекенда? Node.js, PHP или Python jungo ? Понятно что все хостинги умеют работать c PHP без костылей, но все же? Что лучше учить? А может полезнее и лучше вообще не распыляться и практиковаться дальше во фронте? В общем нужен совет опытного человека =)
Александр, скажите можно ли обойти работу на галере, будучи джуном? Понятно что кто то через знакомых может находить клиентов. Слышал реальную историю. Сейлз (или менеджер) заработав себе нормальный уровень на апворке через компанию, на которой работал. Спустя два года ушел из компании, а вместе с ним и программист, который с ним работал. И они сейчас сами себе компания. Ну это еденичные случае. Какой прогноз вы могли бы сделать для джуна, есть ли у него перспективы без галеры?
У вас баг на сайте: там, где раздел курсы по этой itgid.info/ ссылке, находится 4 курса, и , если навести мышкой после четвертого курса, то выделяться будут сначала первый курс(NodeJs) , а потом второй(если провести дальше)(React.lite Level).Ну или у меня баг)
Здравствуйте, спасибо большое за урок! У меня два вопроса: 1. В функции уменьшения кол-ва товара зачем возвращать true? 2. В функции удаления, я вот прочитал, что если использовать delete, удаляется объект, но не элемент массива. То есть общее количество элементов в массиве остается таким же. Если же использовать splice, то количество элементов в массиве уменьшается и объект со следующим индексом заменяет удаляемый. Это в данном случае имеет какую-то роль? Это когда важно?
Для новичков и понимания хорошо, но использовать в реальном проекте нельзя. Требуется совсем другой подход и в итоге у вас очень много похожего кода, которой делает примерно тоже самое. И если скорость интернета позволяет подгружать скрипт хоть в 20мб, то ресурсы ограничены. Если обучать, так правильно, в любом случаи это лучше, чем можно встретить в "профессиональных" проектах.
@@DIMANVAZ04 как говорится, самое страшное, кода твой сервис ложится под нагрузкой и клиенты сваливают на другой ресурс. Поэтому и изгаляются разрабы как только можно, чтобы подобного не допустить. Как говорил Цукерберг в "Социальная сеть" : "Фишка фэйсбук в том, что он работает всегда без единого падения"
Подскажите как перерисовать товары в корзине никак не получается. Вывожу модальным окном. Так добавляю в корзину for(let key in cart){ if (cart[key].count !== 0 ){ addCardHtmlMarkup = ` ${cart[key].name} ${cart[key].price} - ${cart[key].count} + × `; modalBody.insertAdjacentHTML("beforeEnd", addCardHtmlMarkup); } } При нажатии закрыть удаляю все дочерние элементы, но при повторном нажатии просмотра корзины, она пустая, и товары не добавляются при добавлении if (modalBody.childNodes.length !== 0){ modalBody.parentNode.removeChild(modalBody); } А если не удалять вторым скриптом появляются дубли товаров, почему при удалении перестает все работать