Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как занести значение размера товара в корзину

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
arhat
Отправлено: 29 Апреля, 2014 - 17:38:02
Post Id



Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Март 2014  
Откуда: Москва


Помог: 0 раз(а)




Всем Привет! Всё борюсь с вроде бы простым действием, но у меня это всё никак не получается. Есть описание товара с названием, ценой и выпадающим списком размеров обуви. Никак не могу передать выбранное значение (например 21й размер) в корзину. Туда прилетает всегда 19й (первый в списке). Как то нужно правильно принять в корзине, но вот как.....

Вот это код вывода размера:

PHP:
скопировать код в буфер обмена
  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" onchange="this.form.submit()">
  5. <?PHP
  6. $sql="SELECT * FROM sizes WHERE `sizes`.`id_boot`='$id' ";
  7. echo $sql.'<br>';
  8. $a=mysql_query($sql);
  9. while ($b = mysql_fetch_array($a))
  10. {
  11.       echo  "<option  value='$b[2]' >   $b[2] </option>";
  12. }
  13.  
  14.  
  15. ?>
  16. </select>
  17. <input type="submit" value="Добавить в корзину">
  18. </form>

Это корзина принимает товар....:

PHP:
скопировать код в буфер обмена
  1. <?PHP foreach ($_SESSION['cart'] as $id => $quantity):
  2.          $product = get_product($id);
  3.          
  4.          $b = get_sizes($id);
  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">   <?=number_format($product['price'],2); ?> руб</td>
  12.           <td align="center"><input type="text" size="2" name="<?=$id; ?>" maxlength="2" value="<?=$quantity; ?>" /></td>
  13.           <td align="center">  <?=number_format($product['price'] * $quantity ,2); ?> руб</td>
  14.           </tr>
  15.      
  16.       <?PHP endforeach; ?>
 
 Top
arhat
Отправлено: 29 Апреля, 2014 - 20:54:43
Post Id



Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Март 2014  
Откуда: Москва


Помог: 0 раз(а)




Люди, подскажите!!! Что, вообще никак???
 
 Top
Stierus Супермодератор
Отправлено: 29 Апреля, 2014 - 21:42:47
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




Видимо, в корзине вместо
PHP:
скопировать код в буфер обмена
  1. <td align="center">   <?=$b['size'];?> </td>
нужно сделать что-то похожее на то, что ты делал в выводе размеров
 
My status
 Top
arhat
Отправлено: 29 Апреля, 2014 - 21:58:07
Post Id



Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Март 2014  
Откуда: Москва


Помог: 0 раз(а)




Stierus пишет:
Видимо, в корзине нужно сделать что-то похожее на то, что ты делал в выводе размеров


Stierus, у меня мелькала такая мысль, но правильно внедрить тот код в корзину не получалось - постоянно были ошибки....
 
 Top
arhat
Отправлено: 16 Мая, 2014 - 23:55:12
Post Id



Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Март 2014  
Откуда: Москва


Помог: 0 раз(а)




С помощью добрых людей получилось загонять нужный размер. Но теперь возник новый вопрос: добавляю в корзину ботинок Арт.10001 размер 20, в корзине выводится этот ботинок с размером 20; затем добавляю этот же ботинок, но с размером 24 - а в корзине уже выводится этот последний ввод с размером 24. Вот как поменять код, какой применить принцип, чтобы в корзину добавлялся ботинок одного id, но с разными выбранными размерами? У размеров своя таблица в mysql, с id. Заранее благодарен Улыбка

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

PHP:
скопировать код в буфер обмена
  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=mysql_query($sql);
  9. while ($b = mysql_fetch_array($a))
  10. {
  11.       echo  "<option  value='$b[2]' >  $b[2] </option>";
  12. }
  13. ?>
  14. </select>
  15. <input type="submit" value="Добавить в корзину">
  16. </form>


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

PHP:
скопировать код в буфер обмена
  1. foreach ($_SESSION['cart'] as $id => $quantity):
  2.         $product = get_product($id);
  3.      
  4.         $b['size'] = $_SESSION['cart_size'][$id];
  5.  
  6.         if (!empty($_GET['size'])) {echo $_GET['size'];}
  7.       ?>
  8.  
  9.       <tr>
  10.           <td align="center"><?=$product['title']; ?></td>
  11.           <td align="center">  <?=$b['size'];?> </td>
  12.           <td align="center">  <?=number_format($product['price'],2); ?> руб</td>
  13.           <td align="center"><input type="text" size="2" name="<?=$id; ?>" maxlength="2" value="<?=$quantity; ?>" /></td>
  14.           <td align="center">  <?=number_format($product['price'] * $quantity ,2); ?> руб</td>
  15.       </tr>
 
 Top
arhat
Отправлено: 26 Мая, 2014 - 09:48:31
Post Id



Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Март 2014  
Откуда: Москва


Помог: 0 раз(а)




Как я понял, можно попробовать в корзине через if-else проверку сделать, только вот как можно сравнить выбранный размер с размером в массиве через "=="? В теории - проверить, есть ли уже данный товар в корзине, есть ли данный размер в корзине, если нет такого же размера-добавить, если нет такого товара - добавить. А как на практике осуществить данную проверку???? Все выходные смотрел мануалы, форумы - ничего толкового не нашёл... Недовольство, огорчение Заранее благодарен Улыбка
 
 Top
arhat
Отправлено: 27 Мая, 2014 - 10:08:50
Post Id



Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Март 2014  
Откуда: Москва


Помог: 0 раз(а)




А в ответ - тишина................
 
 Top
arhat
Отправлено: 05 Июня, 2014 - 09:55:27
Post Id



Новичок


Покинул форум
Сообщений всего: 37
Дата рег-ции: Март 2014  
Откуда: Москва


Помог: 0 раз(а)




Можно вывести через ассоциативный ключ. Например, вот так:

PHP:
скопировать код в буфер обмена
  1. case('add_to_cart'):
  2.       $id = $_GET['id'];
  3.       $size = $_GET['size'];
  4.       $_SESSION['cart_size'][$id] = $size;
  5.  
  6.      [u] $add_item = add_to_cart(sprintf('id%ds%d', $id, $size));[/u]
  7.  
  8.       $_SESSION['total_items'] = total_items($_SESSION['cart']);
  9.       $_SESSION['total_price'] = total_price($_SESSION['cart']);
  10.       header('Location:index.php?view=product&id='.$id);
  11.    break;


После добавления двух разных размеров при выводе товара в корзине появляется теперь две строки, но без идентификации товара и цены; только количество. И ругается на этот код:
PHP:
скопировать код в буфер обмена
  1. $b['size'] = $_SESSION['cart_size'][$id];

Notice: Undefined index: id2s19 in C:\wamp\www\MyShop\views\pages\cart.php on line 27

(Отредактировано автором: 07 Июня, 2014 - 12:47:37)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB