Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Необходима доработка shopping cart
 
 автор: Fring   (08.07.2015 в 12:51)   письмо автору
 
 

Здравствуйте, уважаемые! Помогите, пожалуйста, доработать shopping cart. Необходимо ограничить кол-во добавляемых в корзину товаров... в каждой рубрике этот лимит индивидуален.

Пример

Калоши 0/3 ---------- Товар 1, Товар 2, Товар 3, Товар 4, Товар 5, Товар 6
]
Майки 0/4 ----------- Товар 1, Товар 2, Товар 3, Товар 4, Товар 5

и т.д.

т.е. в рубрике Калоши мы видим 6 позиций, но разрешается положить в корзину только 3 из 6. Ещё одно уточнение... каждый товар можно добавить только по 1 шт., т.е. нельзя в рубрике Калоши положить в корзину Товар 1 (2шт. или 3 шт.).



<?
function worksCart ($prod) {
  if(
$prod) { //добавление товаров и обновление корзины
    
if (!isset($_SESSION['cart'])) $_SESSION['cart'] = array();
    
$cart = &$_SESSION['cart'];
    if (
is_array($prod)) { //добавление массива товаров
      
foreach($prod as $key => $val) {
        
$key intval($key);
        if (
$key) {
          
$val intval($val);
          if (isset(
$_POST['del']) && in_array($key$_POST['del']) || !$val) {
            
//удаление товара из корзины
            
if (array_key_exists($key$cart)) unset($cart[$key]);
          } else 
$cart[$key] = $val//добавление, обновление
        
}
      }
    } else {
      
//добавление одиночного товара
      
$id intval($prod);
      if (
$id$cart[$id] = array_key_exists($id$cart) ? $cart[$id] + 1;
    }
  } else unset(
$_SESSION['cart']); //удаление корзины
}

//имеющиеся товары
$goods = array(
  
79  => array('name'=>'Товар 1','mony'=>120),
  
102 => array('name'=>'Товар 2','mony'=>60),
  
89  => array('name'=>'Товар 3','mony'=>35),
  
211 => array('name'=>'Товар 4','mony'=>86)
);

session_start();

//добавление одиночного товара
if (isset($_GET['add'])) worksCart($_GET['add']);
//добавление массива товаров, например,
//с одной страницы группы выбранных
//и обновление корзины (редактирование)
if (isset($_POST['update'])) worksCart($_POST['prod']);
//удаление корзины
if (isset($_POST['clear'])) worksCart(0);


foreach(
$goods as $id => $val) {
  echo 
$val['name'] . ", цена: " .$val['mony']. " руб. <a href=\"?add=" .$id"\">Добавить в корзину</a><br>";
}



if (!empty(
$_SESSION['cart'])) {
  echo 
"<form method=\"post\">
    <input type=\"submit\" name=\"clear\" value=\"clear\">
    <table>
    <tr>
     <td>Товар</td>
     <td>Цена, руб</td>
     <td>Выбрано, шт</td>
     <td>Стоимость, руб</td>
     <td>Удалить</td>
    </tr>"
;
  
$k 0;
  
$m 0;
  foreach(
$_SESSION['cart'] as $key => $val) {
    
$k += $val;
       echo 
"<tr>
        <td><a href=\"goods.php?id=" 
.$key"\">" .$goods[$key]['name']. "</a></td>
        <td>" 
.$goods[$key]['mony']. "</td>
        <td><input type=\"text\" name=\"prod[" 
.$key"]\" value=\"" .$val"\"></td>
        <td>" 
.$goods[$key]['mony']*$val"</td>
        <td><input type=\"checkbox\" name=\"del[]\" value=\"" 
.$key"\"></td>
       </tr>"
;
     
$m += $goods[$key]['mony']*$val;
  }
  echo 
"<tr>
    <td colspan=\"2\">total</td>
    <td>" 
.$k"</td>
     <td>" 
.$m"</td>
     <td>&nbsp;</td>
    </tr>
   </table>
   <input type=\"submit\" name=\"update\" value=\"reload\">
   </form>"
;
} else print 
"empty";

  Ответить  
 
 автор: Trianon   (08.07.2015 в 21:57)   письмо автору
 
   для: Fring   (08.07.2015 в 12:51)
 

Но почему?
Корзина треснет?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования