Изменения в корзине товаров
Добрый день!
Я только начала учить js, поэтому прошу не судить строго за сам вопрос. У меня есть страница(корзина) на которой я уже сверстала таблицу с выбранными товарами(этих товаров нет, просто муляж корзины) . так вот, я хочу сначала понять как мне обратится к конкретной строке таблицы. у меня есть знак удалить напротив каждой строки таблицы, я хотела сначала попробовать хотя бы скрыть строчку таблицы . Если не сложно, объясните как работать с этими данными таблицы? нужно все данные заносить в обьект (ассоц.массив) ? first - это class tr, в котором характеристики товаров (td) document.querySelector(".delete_item").addEventListener("click", function() { document.querySelector(".first").style.display="none"; }) |
Представьте, что у вас есть реальный выбор - слева от вас магазин, справа рынок. Вам необходимо купить товар "Х". Вы заходите в магазин, видите товар на прилавке и занимаете очередь. Мысленно вы уже купили товар, но в аккурат когда до вас дошла очередь, последний товар с прилавка был продан впереди стоящему.
Вы отправляетесь на рынок и видите у одного из торгующих список товаров среди которых есть и "Х". Товара самого оказывается нет, но не проблема, продавец предлагает его все равно заказать и гарантирует, что завтра для вас он обязательно будет. В обоих случаях торговля, но в каждом из них есть своя специфика. Если в первом случае вы можете видеть товар, но это еще не означает, что в в любое время "Ч" он вам будет доступен. Плох тот магазин (и не важно реальный ли или виртуальный), который не ведет учета товаров и при этом оставляет в неведении покупателя. Еще хуже, если виртуальный магазин предоставляет покупателю корзину оторванную от склада. Поэтому, прежде чем тренироваться с корзиной, необходимо определиться с торговой политикой магазина, а уж затем, зная каков механизм набора товаров в корзину будет, можно определять код обслуживающий ее. |
Цитата:
|
Цитата:
Просто работать с ячейками таблицы, это да, просто на таблице достаточно. А если корзина и завязана на учет товаров на складе, то без сервера клиент не сможет сам товарами распоряжаться, а значит и у клиентского кода обслуживающего корзину будут иные задачи. Это ведь тоже предмет для обучения. ) |
laimas,
Уважаемый профессор, позвольте с вами не согласиться. Есть как минимум два способа обучения плаванию: первый - подробное изучение теоретических основ плавания, начиная с закона Архимеда, изучение техники плавания различными стилями, методологические основы заплывов на короткие и длинные дистанции ит.д и т.п. Параллельно с этим, под руководством тренера, практические занятия: гребля руками, стоя по пояс в воде, движения ногами, держась за опору, выдох в воду... Второй способ - так сказать, погружение: прыгнуть в воду и пытаться плыть, попутно на практике оптимизируя процесс применительно к различным реальным ситуациям. Оба эти способа существуют параллельно, нисколько не мешая друг другу, а взаимно дополняя и сочетаясь в различных пропорциях. Главный недостаток первого метода, имхо, - необходимость наставника, контролирующего и направляющего - иначе утонешь в пучине необходимых знаний и навыков. Многое в успехе зависит от наставника. Главное достоинство второго метода - вдохновение от успехов пусть в небольших свершениях, осознание проблем, требующих решения, постановка новых задач, исходя из собственного опыта. Ну ладно - можно долго говорить, главное - к истине много путей. |
r1sus,
Для того, чтобы вам можно было ответить конкретно, покажите html-код вашей таблицы |
Цитата:
1) Я такой же профессор как и вы. ) 2) То что дама учится не следовало из первого поста. 3) Я не предлагал учиться плавать в пустом бассейне. 4) Учиться класть кирпичную кладку не означает начинать сразу со строительства дома. 5) Не каждый мастер кладки кирпича хороший печник. Программирование и плавание все таки разные профессии, и для первого образное мышление не менее важно как и логическое. Вы может сколь угодно не соглашаться, я же могу заключить пари и выиграть его даже на постах этого форума, по тем случаям, когда научились, выучили как вы выражаетесь теорию, но так и не научились мышлению, тому куда теорию применять то и как. И выиграю потому, что такие случаи не единичны. Мало научиться обращаться к элементом и запихивать данные в массивы и объекты, это в любом случае есть практика, со временем она появится, а вот не учиться ставить задачи и их цели, это плохо. И школа не ради теории учит решать задачи, а ради развития мышления, что и в самообразовании должно присутствовать всегда. |
laimas,
Моей целью было и есть научится работать с элементами корзины, удалять , изменять кол-во. со временем я научусь записывать и извлекать эти данные. разве я могу на этапе обучения изменения данных на странице ставить себе задачу разобраться в политике магазина Я с вами согласна, что нужно развивать образное мышление, но на данный момент мне не хватает знаний языка , чтобы реализовать даже простые функции. мой пост скорее для того чтобы мне посоветовали направление , в котором двигаться, что еще выучить . вектор в общем) |
Dilettante_Pro,
Спасибо за понимание. На данный момент у меня есть вот такая таблица. пока что удалить ничего не получилось. <table id="basket_goods"> <tr class="table_frame"> <td>Description</td> <td>Color</td> <td>Size</td> <td>Qty</td> <td>Price</td> <td>Delete</td> </tr> <tr class="goods "> <td class = "item_name"><h4>Lorem ipsum</h4></td> <td class ="item_color">Black</td> <td class="item_size">35</td> <td class="item_qty">1</td> <td class = "item_price">€99.95</td> <td class="delete_item"><a href = "">×</a></td> </tr> </table> вот js , но не работает . function deleteRow(r) { var i=r.parentNode.parentNode.rowIndex; document.getElementById('basket_goods').deleteRow(i); } document.querySelector(".delete_item").addEventListener("click", deleteRow(this)); |
Удалять строку получилось! заменила ссылку со знаком удалить на кнопку
:dance: подскажите, теперь тему удалить нужно или модераторы сами удаляют ? |
Цитата:
Значит все таки корзина, тогда придется вас огорчить - корзина виртуального магазина, это далеко не таблица или иной объект DOM на странице, в котором нужно удалять или добавлять элементы. А значит и учитесь вы совсем не тому. Политика магазина же не имеет отношения к внутренней и внешней политике, к любой из партий, и ходить на политзанятия я вас не заставляю. :) Цитата:
Магазины реальные вы уж точно посещали, а значит представить пусть в общих чертах структуру магазина можете. А теперь попробуйте эту структуру переложить на виртуальный магазин. Вся "политика КПСС" в контексте виртуального магазина в плане отношения с покупателем, это: а) положили товар в корзину - за мелкими исключениями у всех магазинов это одинаково; б) оформляем заказ - вот тут все зависит от "устава партии", одни скажут что товара нет, и далее у кого как, а у других такая ситуация исключена, ибо при отсутствии товара покупатель не сможет выполнить п. а). Где находится склад реального магазина - у вас в квартире или магазин имеет собственные постройки? Вот так и в виртуальном магазине - склад товаров его, это сервер. И если ведется учет товаров на складе, то в некий момент времени товар может быть положен в корзину или уже распродан. А поэтому все запросы на добавление/удаление товара из корзины проходят через кладовщика (сервер). Корзина как таковая в данном случае, это описание товаров находящихся в ней, которое хранят либо в сессии, либо базе. Клиент же получая эти данные отображает их посредством каких либо DOM объектов. Щелчки по элементам этих объектов только инициализируют запрос к серверу (кладовщику). Если учета товаров на складе нет и у магазина в этом случае своя политика взаимоотношений к покупателем, то только в этом случае можно полностью перенести корзину на клиента - описание ее и отображение. В этом случае корзина, это описание ее товаров либо в cookies, либо в localStorage, и добавлять/удалять товар нужно в этих описаниях, а представление ее (таблица или иное) перерисовывается с каждым изменением состояния корзины, а щелчки по представлению корзины всего лишь источник этих событий. Если и в случае когда на складе ведется учет, а описание корзины хранит не сервер, то прежде чем добавить/удалить товар в описании корзины, при хранении его в localStorage, требуется известить сервер об этом. В случае хранения описания товаров корзины в cookies сервер может самостоятельно проверить ее товарные соответствия. ------------------ Почитайте о корзинах виртуальных магазинов, что стоит за этим понятием, а написано об этом много. А щелкнуть и удалить DOM элемент, это далеко от сути понятия корзина. |
r1sus,
Поздравляю, успехов! Темы не удаляют - может понадобиться другим. |
laimas,
я прочитала и о локальном хранилище, на просторах интернета сегодня можно найти готовые решения и использовать их как заблагорассудится. Мне пока не хватает знаний , чтобы осмыслить как куда и что отправлять. Может я зря начала с корзины, просто это типичное задание и мне захотелось сделать его самой. Я очень много читаю художественных книг, но в языках программирования мне сложно понимать процессы, и я думаю, именно от нехватки знаний и практики. Вот решила переключится на книги по js, хотя худ.литература доставляет мне намного больше удовольствия) В любом случае , спасибо за внимание к моему вопросу и предложенными темами для размышления ) |
Ну так корзина, да в общем не только она, это хранимые данные в первую очередь, и для описания товаров ее достаточно хранить в ней идентификатор товара, его цену и количество. Этим вы должны управлять, и если на клиенте, то клиентским скриптом. Таблицы и прочее, это всего лишь отображение корзины, ее интерфейс.
Можно конечно описать корзину и таблицей, но хранить такое это накладно, а управлять таким, это сложно. |
Часовой пояс GMT +3, время: 02:41. |