Важная информация
Страница 1 из 5 123 ... ПоследняяПоследняя
Показано с 1 по 10 из 48

Тема: Вывод товара в корзине

  1. #1 Вывод товара в корзине 
    Разбирающийся
    Регистрация
    11.06.2014
    Сообщений
    27
    Сказал(а) спасибо
    1
    Поблагодарили 0 раз(а) в 0 сообщениях
    Всем привет! В свободное от работы время изучаю PHP и тренируюсь в создании инет-магазина, и вот возник вопрос: добавляю в корзину ботинок Арт.10001 размер 20 из выпадающего списка, в корзине выводится этот ботинок с размером 20; затем добавляю этот же ботинок, но с размером 24 - а в корзине уже выводится этот последний ввод с размером 24. Вот как поменять код, какой применить принцип, чтобы в корзину добавлялся ботинок одного id, но с разными выбранными размерами? У размеров своя таблица в mysql, с id. Заранее благодарен

    Добавление товара в корзину:

    PHP Code:
    1. <form action="index.php" method="get">
    2.     <input type="hidden" name="view" value="add_to_cart">
    3.     <input type="hidden" name="id" value="<?=$product['id']?>">
    4.     <select name="size" >
    5.     <?PHP
    6.     $sql="SELECT * FROM sizes WHERE `sizes`.`id_boot`='$id' ";
    7.     echo $sql.'<br>';
    8.     $a=[Ссылки могут видеть только зарегистрированные пользователи. ]($sql);
    9.     while ($b = [Ссылки могут видеть только зарегистрированные пользователи. ]($a))
    10.     {
    11.           echo  "<option  value='$b[2]' >  $b[2] </option>";
    12.     }
    13.     ?>
    14.     </select>
    15.     <input type="submit" value="Добавить в корзину">
    16.     </form>


    Это вывод в корзине:

    PHP Code:
    1. foreach ($_SESSION['cart'] as $id => $quantity): $product = get_product($id);
    2.  
    3.         $b['size'] = $_SESSION['cart_size'][$id];
    4.  
    5.         if (!empty($_GET['size'])) {echo $_GET['size'];}
    6.       ?>
    7.  
    8.       <tr>
    9.           <td align="center"><?=$product['title']; ?></td>
    10.           <td align="center">  <?=$b['size'];?> </td>
    11.           <td align="center">  <?=[Ссылки могут видеть только зарегистрированные пользователи. ]($product['price'],2); ?> руб</td>
    12.           <td align="center"><input type="text" size="2" name="<?=$id; ?>" maxlength="2" value="<?=$quantity; ?>" /></td>
    13.           <td align="center">  <?=[Ссылки могут видеть только зарегистрированные пользователи. ]($product['price'] * $quantity ,2); ?> руб</td>
    14.       </tr>
    Ответить с цитированием  
     

  2. #2  
    Разбирающийся
    Регистрация
    11.06.2014
    Сообщений
    27
    Сказал(а) спасибо
    1
    Поблагодарили 0 раз(а) в 0 сообщениях
    Люди добрые,что, вообще никак??????
    Ответить с цитированием  
     

  3. #3  
    Admin
    Регистрация
    09.04.2014
    Сообщений
    1,219
    Сказал(а) спасибо
    778
    Поблагодарили 491 раз(а) в 404 сообщениях
    Приветствую! Ну почему вообще ни как, просто выходные. После выходных обязательно ответят, у нас есть тут спец rovico он поможет.
    Ответить с цитированием  
     

  4. #4  
    Разбирающийся
    Регистрация
    11.06.2014
    Сообщений
    27
    Сказал(а) спасибо
    1
    Поблагодарили 0 раз(а) в 0 сообщениях
    Цитата Сообщение от igor.c Посмотреть сообщение
    Приветствую! Ну почему вообще ни как, просто выходные. После выходных обязательно ответят, у нас есть тут спец rovico он поможет.
    igor.c, благодарю Жду с нетерпением
    Ответить с цитированием  
     

  5. #5  
    Администратор Аватар для rovico
    Регистрация
    17.04.2014
    Адрес
    Ярославль
    Сообщений
    245
    Сказал(а) спасибо
    17
    Поблагодарили 287 раз(а) в 162 сообщениях
    Записей в блоге
    2
    Форма отправки товара в корзину и вывод строки корзины мне мало о чём говорят....
    Строка
    PHP Code:
    1. <td align="center">  <?=$b['size'];?> </td>

    выводит одно значение размера. По-видимому, в $b['size']; нужно из сессии брать несколько связанных значений размеров и по ним уже делать foreach.
    Ответить с цитированием  
     

  6. #6  
    Администратор Аватар для rovico
    Регистрация
    17.04.2014
    Адрес
    Ярославль
    Сообщений
    245
    Сказал(а) спасибо
    17
    Поблагодарили 287 раз(а) в 162 сообщениях
    Записей в блоге
    2
    Типа того

    PHP Code:
    1.  
    2. <?php
    3.   foreach ($_SESSION['cart'] as $id => $quantity):
    4.        $product = get_product($id);
    5.        $sizes = $_SESSION['cart_size'][$id];
    6.         if (!empty($_GET['size'])) {echo $_GET['size'];}
    7.       ?>
    8.       <?php foreach( $sizes as $size): ?>
    9.       <tr>
    10.           <td align="center"><?php echo $product['title']; ?></td>
    11.           <td align="center">  <?php echo $size;?> </td>
    12.           <td align="center">  <?php echo number_format($product['price'],2); ?> руб</td>
    13.           <td align="center"><input type="text" size="2" name="<?php echo $id; ?>" maxlength="2" value="<?php echo $quantity; ?>" /></td>
    14.           <td align="center">  <?php echo number_format($product['price'] * $quantity ,2); ?> руб</td>
    15.       </tr>
    16.     <?php endforeach; ?>
    17. <?php endforeach; ?>



    соответственно, $_SESSION['cart_size'][$id] содержит некоторый массив размеров для выбранного id товара.

    Остаётся только вопрос о том, что к каждому размеру, а не к каждому id Товара нужно добавлять количество пар обуви. То есть, по идее, надо так:

    PHP Code:
    1.  
    2. <?php  foreach ($_SESSION['cart'] as $id => $sizes):?>
    3. <?php
    4.        $product = get_product($id);
    5.        if (!empty($_GET['size'])) {echo $_GET['size'];}
    6. ?>      
    7.       <?php foreach( $sizes as $size => $quantity ): ?>
    8.       <tr>
    9.           <td align="center"><?php echo $product['title']; ?></td>
    10.           <td align="center">  <?php echo $size;?> </td>
    11.           <td align="center">  <?php echo number_format($product['price'],2); ?> руб</td>
    12.           <td align="center"><input type="text" size="2" name="<?php echo $id; ?>" maxlength="2" value="<?php echo $quantity; ?>" /></td>
    13.           <td align="center">  <?php echo number_format($product['price'] * $quantity ,2); ?> руб</td>
    14.       </tr>
    15.     <?php endforeach; ?>
    16. <?php endforeach; ?>
    Ответить с цитированием  
     

  7. Пользователь сказал cпасибо:

    arhat78 (16.06.2014)

  8. #7  
    Разбирающийся
    Регистрация
    11.06.2014
    Сообщений
    27
    Сказал(а) спасибо
    1
    Поблагодарили 0 раз(а) в 0 сообщениях
    Цитата Сообщение от rovico Посмотреть сообщение

    Остаётся только вопрос о том, что к каждому размеру, а не к каждому id Товара нужно добавлять количество пар обуви. То есть, по идее, надо так:

    PHP Code:
    1.  
    2. <?php  foreach ($_SESSION['cart'] as $id => $sizes):?>
    3. <?php
    4.        $product = get_product($id);
    5.        if (![Ссылки могут видеть только зарегистрированные пользователи. ]($_GET['size'])) {echo $_GET['size'];}
    6. ?>      
    7.       <?php foreach( $sizes as $size => $quantity ): ?>
    8.       <tr>
    9.           <td align="center"><?php echo $product['title']; ?></td>
    10.           <td align="center">  <?php echo $size;?> </td>
    11.           <td align="center">  <?php echo [Ссылки могут видеть только зарегистрированные пользователи. ]($product['price'],2); ?> руб</td>
    12.           <td align="center"><input type="text" size="2" name="<?php echo $id; ?>" maxlength="2" value="<?php echo $quantity; ?>" /></td>
    13.           <td align="center">  <?php echo [Ссылки могут видеть только зарегистрированные пользователи. ]($product['price'] * $quantity ,2); ?> руб</td>
    14.       </tr>
    15.     <?php endforeach; ?>
    16. <?php endforeach; ?>
    Такую ошибку выводит: Warning: Invalid argument supplied for foreach() in C:\wamp\www\MyShop\views\pages\cart.php on line 25 вот в этой строчке:

    PHP Code:
    1. <?php foreach( $sizes as $size => $quantity ): ?>
    ......
    Ответить с цитированием  
     

  9. #8  
    Администратор Аватар для rovico
    Регистрация
    17.04.2014
    Адрес
    Ярославль
    Сообщений
    245
    Сказал(а) спасибо
    17
    Поблагодарили 287 раз(а) в 162 сообщениях
    Записей в блоге
    2
    arhat78, вам надо изменить тогда алгоритм сохранения данных корзины в сессию так, чтобы в $_SESSION['cart'] была примерно такая структура:

    PHP Code:
    1. $_SESSION['cart'] = array (
    2.     id1 => array(
    3.         size1 => quantity1,
    4.         size2 => quantity2,
    5.         ....
    6.    ),
    7.    id2 => array (
    8.         size1 => quantity1,
    9.         ...
    10.   ),
    11.   ...
    12. );


    Где
    id{n} - это id Товара в корзине
    size{n} - это размер или id размера в корзине
    quantity{n} - это количество товаров каждого размера.



    То есть я предлагаю следующую иерархию:

    Корзина:
    --Товар
    ---- Размер
    ------ Количество
    ---- Размер2
    ------ Количество
    -- Товар2

    и тд
    Ответить с цитированием  
     

  10. #9  
    Разбирающийся
    Регистрация
    11.06.2014
    Сообщений
    27
    Сказал(а) спасибо
    1
    Поблагодарили 0 раз(а) в 0 сообщениях
    Цитата Сообщение от rovico Посмотреть сообщение
    arhat78, вам надо изменить тогда алгоритм сохранения данных корзины в сессию так, чтобы в $_SESSION['cart'] была примерно такая структура:


    То есть я предлагаю следующую иерархию:

    Корзина:
    --Товар
    ---- Размер
    ------ Количество
    ---- Размер2
    ------ Количество
    -- Товар2
    rovico, вот с array у меня загвоздка пока какая то... Читал про него, читал, но мало чего вычитал.... И in_array пробовал - тоже ничего не получилось
    Ответить с цитированием  
     

  11. #10  
    Администратор Аватар для rovico
    Регистрация
    17.04.2014
    Адрес
    Ярославль
    Сообщений
    245
    Сказал(а) спасибо
    17
    Поблагодарили 287 раз(а) в 162 сообщениях
    Записей в блоге
    2
    найдите и пришлите кусок кода (можно даже приложить в архиве файлом php), в котором у вас формируются данные в $_SESSION['cart'] и $_SESSION['cart_size'].
    Ответить с цитированием  
     

Страница 1 из 5 123 ... ПоследняяПоследняя
Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Как перевести надписи в корзине Drupal сборка commercebox-7.0-dev
    от Максим Логвиненко в разделе Системы управления контентом
    Ответов: 1
    Последнее сообщение: 24.07.2013, 10:28
  2. Вывод из базы в url и её индексация
    от TheTi в разделе Индексация сайта
    Ответов: 6
    Последнее сообщение: 27.01.2013, 21:33
  3. Вывод числа
    от NoodLez в разделе C/C++
    Ответов: 2
    Последнее сообщение: 16.09.2012, 01:58
  4. Вывод div в зависимости от дня недели
    от FINESTGOL в разделе JavaScript
    Ответов: 4
    Последнее сообщение: 07.08.2012, 15:33
  5. Ввод-вывод
    от Dispetcher14 в разделе QBasic
    Ответов: 5
    Последнее сообщение: 20.05.2011, 17:58
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •