Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2021, 00:47   #1
nonameii3ii
Пользователь
 
Регистрация: 16.04.2021
Сообщений: 73
По умолчанию Таблица JS

Как под таблицей вывести общую сумму всех товаров
Код:
var d = document,
    itemBox = d.querySelectorAll('.product-grid'), // блок каждого товара
    cartCont = d.getElementById('cart_content'); // блок вывода данных корзины
  // Функция кроссбраузерной установка обработчика событий
  function addEvent(elem, type, handler){
  if(elem.addEventListener){
    elem.addEventListener(type, handler, false);
  } else {
    elem.attachEvent('on'+type, function(){ handler.call( elem ); });
  }
  return false;
  }
  // Получаем данные из LocalStorage
  function getCartData(){
  return JSON.parse(localStorage.getItem('cart'));
  }
  // Записываем данные в LocalStorage
  function setCartData(o){
  localStorage.setItem('cart', JSON.stringify(o));
  return false;
  }
  // Добавляем товар в корзину
  function addToCart(e){
  this.disabled = true; // блокируем кнопку на время операции с корзиной
  var cartData = getCartData() || {}, // получаем данные корзины или создаём новый объект, если данных еще нет
      parentBox = this.parentNode, // родительский элемент кнопки "Добавить в корзину"
      itemId = this.getAttribute('data-id'), // ID товара
      itemTitle = parentBox.querySelector('.title').innerHTML, // название товара
      itemPrice = parentBox.querySelector('.price').innerHTML; // стоимость товара
  if(cartData.hasOwnProperty(itemId)){ // если такой товар уже в корзине, то добавляем +1 к его количеству
    cartData[itemId][2] += 1;
    alert("Товар добавлен!");
  } else { // если товара в корзине еще нет, то добавляем в объект
    cartData[itemId] = [itemTitle, itemPrice, 1];
    alert("Товар добавлен!");
  }
  if(!setCartData(cartData)){ // Обновляем данные в LocalStorage
    this.disabled = false; // разблокируем кнопку после обновления LS
  }
  return false;
  }
  
  // Устанавливаем обработчик события на каждую кнопку "Добавить в корзину"
  for(var i = 0; i < itemBox.length; i++){
  addEvent(itemBox[i].querySelector('.add_item'), 'click', addToCart);
  }
  
  // Открываем корзину со списком добавленных товаров
  function openCart(e){
  var cartData = getCartData(), // вытаскиваем все данные корзины
      totalItems = '';
  // если что-то в корзине уже есть, начинаем формировать данные для вывода
  if(cartData !== null){
    totalItems = '<table class="shopping_list"><tr><th>Наименование</th><th>Цена</th><th>Кол-во</th></tr>';
    for(var items in cartData){
      totalItems += '<tr>';
      for(var i = 0; i < cartData[items].length; i++){
        totalItems += '<td>' + cartData[items][i] + '</td>';
      }
      totalItems += '</tr>';
    }
    totalItems += '</table>';
    cartCont.innerHTML = totalItems;
  } else {
    // если в корзине пусто, то сигнализируем об этом
    cartCont.innerHTML = 'В корзине пусто!';
  }
  return false;
  }
  /* Открыть корзину */
  addEvent(d.getElementById('checkout'), 'click', openCart);
  /* Очистить корзину */
  addEvent(d.getElementById('clear_cart'), 'click', function(e){
  localStorage.removeItem('cart');
  cartCont.innerHTML = 'Корзина очишена.';
  });
nonameii3ii вне форума Ответить с цитированием
Старый 14.12.2021, 07:44   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

1. Подсчет суммы в цикле ведите sum = sum + тут ваш элемент с ценой * кол-во
2. Вывод точно так-же как и саму таблицу
ADSoft вне форума Ответить с цитированием
Старый 14.12.2021, 16:17   #3
nonameii3ii
Пользователь
 
Регистрация: 16.04.2021
Сообщений: 73
По умолчанию

Я понимаю что все с циклом делается,но как это "запитать "в мой код
nonameii3ii вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как изменить данных поля таблица по сравнение другой таблица tojdor_tj Microsoft Office Access 9 20.11.2020 15:05
Таблица Vadim7721 Паскаль, Turbo Pascal, PascalABC.NET 10 13.10.2014 01:04
Таблица acteralex C# (си шарп) 10 24.04.2012 23:55
таблица Cpluser HTML и CSS 1 09.02.2010 20:50
Таблица AIda__ Microsoft Office Excel 3 01.12.2009 13:19