Вот пока что вышло:
<?php
session_start();
$_SESSION['cart'][$_POST['code']] = $_POST['kolvo'];
$_SESSION['cena'][$_POST['code']] = $_POST['cena']*$_POST['kolvo'];
$_SESSION['c'][$_POST['code']] = $_POST['tovar'];
if(isset($_POST['del']))
{
unset($_SESSION['cart'][$_POST['del']]);
unset($_SESSION['cena'][$_POST['del']]);
}
$cena=$_SESSION['cena'];
?>
<table>
<tr><td>Наименование</td><td>Количество</td></tr>
<?php
foreach ($_SESSION['c'] as $code => $tovar) {
foreach ($_SESSION['cart'] as $cod => $kolvo)
{
if(($cod==$code)&&($cod!=""))
{
echo "<form method='post'><tr><td>$tovar</td><td><input type='text' name='kol' value='".$kolvo."'></td><td><form method='post'><input type='hidden' name='del' value='".$code."'><input type='submit' value='del'></td></tr></form>";}
}
}
?>
<tr><td colspan="2"><?php echo "товаров на сумму: " .array_sum($cena). " грн."; ?></td></tr>
</table>
<form method="POST">
<input type="text" name="tovar" value="Товар 1"/>
<input type="text" name="kolvo" value="1"/>шт.
<input type="hidden" name="code" value="001" />
<input type="text" name="cena" value="10" />
<input name="submit" type="submit" value="Добавить" />
</form>
<form method="POST">
<input type="text" name="tovar" value="Товар 2"/>
<input type="text" name="kolvo" value="1"/>шт.
<input type="hidden" name="code" value="002" />
<input type="text" name="cena" value="100" />
<input name="submit" type="submit" value="Добавить" />
</form>
<form method="POST">
<input type="text" name="tovar" value="Товар 3"/>
<input type="text" name="kolvo" value="1"/>шт.
<input type="hidden" name="code" value="003" />
<input type="text" name="cena" value="50" />
<input name="submit" type="submit" value="Добавить" />
</form>
Как сделать, чтобы количество товара определенного типа при нажатии на кнопку "Добавить" прибавлялось к уже имеющимуся в корзине количеству.
... вроде элементарно, но не выходит никак.
Спустя 2 часа, 27 минут, 54 секунды (14.07.2010 - 21:29) jalvar написал(а):
тут бд надо как максимум. Минимум писать уже не 1 файл а целую cms!
Спустя 23 минуты, 52 секунды (14.07.2010 - 21:52) ppaull написал(а):
Я знаю. База уже есть. На ней каталог товаров построил. Теперь корзину делаю. Это просто тестовый вариант, а реально данные будут браться из базы данных.
..... вопрос уже отпал - все получилось.
..... вопрос уже отпал - все получилось.
Спустя 1 час, 7 минут, 51 секунда (14.07.2010 - 23:00) tomash написал(а):
А кто мешает хранить массив в сессии
Спустя 14 часов, 19 минут, 8 секунд (15.07.2010 - 13:19) linker написал(а):
Вот это вот
$_SESSION['cart'][$_POST['code']] = $_POST['kolvo'];извините, какая-то ерунда. Добавление, удаление товара из корзины лучше вынести в отдельные скрипты. Список товаров корзине лучше хранить в виде структурированного массива, аля
$_SESSION['cena'][$_POST['code']] = $_POST['cena']*$_POST['kolvo'];
$_SESSION['c'][$_POST['code']] = $_POST['tovar'];
if(isset($_POST['del']))
{
unset($_SESSION['cart'][$_POST['del']]);
unset($_SESSION['cena'][$_POST['del']]);
}
Array(Чтобы получить список товаров
[Tovars] => Array(
[123] => 2 // 123 - ID товара, 2 - количество
[456] => 1
)
)
// Выгребаем из базы описания нужных товаровДобавляем товар
$Result = mysql_query("select * from tovarts where tovar_id in (" . join(',', array_keys($_SESSION['Tovars'])) . ")");
while($Tovar = mysql_fetch_assoc($Result))
{
$Count = $_SESSION['Tovars'][$Tovar['tovar_id']];
echo 'Товар ' . $Tovar['tovar_name'] . ' в количестве ' . $Count . ' шт. за цену ' . ($Count * $Tovar['tovar_cost']) . ' грн.';
}
if (!isset($_POST['TovarId'])) die('Товар отсутствует');Удаляем товар
$TovarId = abs((integer)$_POST['TovarsId']);
if (isset($_SESSION['Tovars'][$TovarId]))
$_SESSION['Tovars'][$TovarId] ++;
else
$_SESSION['Tovars'][$TovarId] = 1;
if (!isset($_POST['TovarId'])) die('Товар отсутствует');
$TovarId = abs((integer)$_POST['TovarsId']);
if (isset($_SESSION['Tovars'][$TovarId]))
{
$_SESSION['Tovars'][$TovarId] --;
if ($_SESSION['Tovars'][$TovarId] == 0)
unset($_SESSION['Tovars'][$TovarId]);
}
Спустя 3 часа, 46 минут, 16 секунд (15.07.2010 - 17:06) ppaull написал(а):
linker
Спасибо большое! Буду разбираться.
Спасибо большое! Буду разбираться.
Спустя 1 год, 8 месяцев, 17 дней, 20 часов, 12 минут, 40 секунд (3.04.2012 - 13:18) ulot3049 написал(а):
Посмотрите тут:
Корзина товаров и оформление заказа
Подробное описания процесса реализации корзины. И интернет амгазина на php в целом с нуля.
Корзина товаров и оформление заказа
Подробное описания процесса реализации корзины. И интернет амгазина на php в целом с нуля.