|
корзина на phpОбсуждение темы корзина на php в разделе ASP, Perl, PHP и MySQL, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; Появилась такая проблема: при нажатии на добавление или на уменьшение кол-ва товара в корзине все вроде работает, но только пока товар в корзине ... |
|
Опции темы |
22.12.2013, 22:43 | #1 |
|
Появилась такая проблема: при нажатии на добавление или на уменьшение кол-ва товара в корзине все вроде работает, но только пока товар в корзине 1, если же товаров несколько то действие всеравно применятся к первому товару. До этого было устроено немного по другому и все работало. Было поле куда нужно ввести цифру и нажать кнопку обновить, но мне кажетс это не очень удобно и я добавил кнопочки "+" и "-" вот только не совсем работает. Помогите пожалуйста, что я упустил?
Вот код функций корзины: Код:
<? function add_to_cart($id) { if(isset($_SESSION['cart'][$id])) { $_SESSION['cart'][$id]++; return true; } else { $_SESSION['cart'][$id] = 1; return true; } return false; } function update_cart() { foreach($_SESSION['cart'] as $id => $qty) { if($_POST[$id] == '0') { unset($_SESSION['cart'][$id]); } else { $_SESSION['cart'][$id] = $_POST[$id]; } } } function more() { foreach($_SESSION['cart'] as $id => $qty) { $_SESSION['cart'][$id]++; return true; } } function less() { foreach($_SESSION['cart'] as $id => $qty) { $_SESSION['cart'][$id]--; return false; } } function unset_cart() { foreach($_SESSION['cart'] as $id => $qty) { unset($_SESSION['cart'][$id]); } } function total_items($cart) { $num_items = 0; if(is_array($cart)) { foreach($cart as $id => $qty) { $num_items = $num_items + $qty; } } return $num_items; } function total_price($cart) { $total_price = 0; $sales = 1; db_connect(); if(is_array($cart)) { foreach($cart as $id => $qty) { $query = "SELECT price FROM products WHERE id='$id'"; $result = mysql_query($query); if($result) { $item_price = mysql_result($result,0,'price'); $total_price = ($total_price + $item_price * $qty) * $sales; } } } return $total_price; } ?> Код:
<? include('db_fns.php'); include('cart_fns.php'); session_start(); if(!isset($_SESSION['cart'])) { $_SESSION['cart'] = array(); $_SESSION['total_items'] = 0; $_SESSION['total_price'] = 0; } $view = empty($_GET['view']) ? 'main' : $_GET['view']; switch($view) { case('main'): $cat_leather = get_cat_leather(); $cat_jewellery = get_cat_jewellery(); break; case('sub'): $cat = $_GET['id']; $products = get_cat_products($cat); break; case('product'): $id = $_GET['id']; $product = get_product($id); break; case('catalog'): $cat_leather = get_cat_leather(); $cat_jewellery = get_cat_jewellery(); break; case('add_to_cart'): $id = $_GET['id']; $add_item = add_to_cart($id); $_SESSION['total_items'] = total_items($_SESSION['cart']); $_SESSION['total_price'] = total_price($_SESSION['cart']); header('Location: index.php?view=product&id='.$id); break; case('update_cart'): update_cart(); $_SESSION['total_items'] = total_items($_SESSION['cart']); $_SESSION['total_price'] = total_price($_SESSION['cart']); header('Location: index.php?view=cart'); break; case('more'): more(); $_SESSION['total_items'] = total_items($_SESSION['cart']); $_SESSION['total_price'] = total_price($_SESSION['cart']); header('Location: index.php?view=cart'); break; case('less'): less(); $_SESSION['total_items'] = total_items($_SESSION['cart']); $_SESSION['total_price'] = total_price($_SESSION['cart']); header('Location: index.php?view=cart'); break; case('unset_cart'): unset_cart(); $_SESSION['total_items'] = total_items($_SESSION['cart']); $_SESSION['total_price'] = total_price($_SESSION['cart']); header('Location: index.php?view=cart'); break; case('cart'): break; } include($_SERVER['DOCUMENT_ROOT'].'/vatago/vatago/vatago.php'); ?> Код:
<? if($_SESSION['cart'] != '0') { ?> <form action="" method="post" id="cart-form"> <table cellpadding="5" cellspacing="2" id="cartd"> <tr id="cartr"> <td width="300">Название:</td> <td width="70">Код:</td> <td width="130">Цена:</td> <td width="70">Кол-во:</td> <td width="130">Всего:</td> </tr> <? foreach($_SESSION['cart'] as $id => $quantity): $product = get_product($id); ?> <tr id="cartr2"> <td width="300"><?=$product['title'];?></td> <td width="70"><?=$product['code'];?></td> <td width="130"><?=number_format($product['price']);?> грн.</td> <td width="70"><b><a href="index.php?view=more">+</a></b> <input type="text" size="1" name="<?=$id;?>" maxlength="3" value="<?=$quantity;?>" /> <b><a href="index.php?view=less">-</a></b></td> <td width="130"><?=number_format($product['price'] * $quantity);?> грн.</td> </tr> <?endforeach;?> </table> <table cellpadding="5" cellspacing="2" id="cartd2"> <tr id="cartr2"> <th width="70"><?=$_SESSION['total_items'];?></td> <th width="130"><?=number_format($_SESSION['total_price']);?> грн.</td> </tr> </table> <div align="center"><input formaction="index.php?view=update_cart" type="submit" name="update" value="Обновить" /><input formaction="index.php?view=unset_cart" type="submit" name="reset" type="button" value="Сброс"></div> </form> <? } else { echo "Ваша корзина пуста!"; } ?> |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Корзина на Php | Dajna | ASP, Perl, PHP и MySQL | 5 | 23.11.2006 12:15 |
Реклама на форуме
Условия размещения рекламы
Биржа ссылок
Заработай на сайте!
|