cart.php
<h2 align="center">Ваша корзина товаров</h2>
<?php
if($_SESSION['cart'] != '0')
{
?>
<form action="" method="post" id="cart-form">
<table style="color:#000" align="center" cellspacing="0" cellpadding="10" border="0">
<tr>
<th>Товар</th>
<th>Цена</th>
<th>Кол-во</th>
<th>Всего</th>
</tr>
<?php
foreach($_SESSION['cart'] as $id => $quantity):
$product = get_product($id);
?>
<tr>
<td align="center"><?php echo $product['name'];?>15</td>
<td align="center"><?php echo $product['price'];?></td>
<td align="center"><input type="text" size="2" name="<?php echo $id;?>" maxlength="2" value="<?php echo $quantity;?>" /></td>
<td align="center"><?php echo $product['price'] * $quantity;?></td>
</tr>
<?php endforeach;?>
</table>
<p class="total" align="center">Общая сумма заказа: <span class="product-price"> $</span></p>
<p align="center"><input type="submit" name="update" value="Обновить" /></p>
</form>
<?php
}
else
{
echo "Ваша корзина пуста!";
}
?>
Спустя 19 минут, 45 секунд (22.05.2012 - 11:19) Placido написал(а):
Вывод ошибок включен? Если да, то какая ошибка? Если нет, то в начале кода нужно поставить error_reporting(E_ALL) и посмотреть, какая ошибка возникает.
Спустя 4 минуты, 46 секунд (22.05.2012 - 11:23) dadli написал(а):
Цитата |
foreach($_SESSION['cart'] as $id => $quantity): |
в конце две точки лишнее
Спустя 2 минуты, 27 секунд (22.05.2012 - 11:26) dikey написал(а):
dadli тогда показывает что в <?php endforeach;?> ошибка
Спустя 3 минуты, 24 секунды (22.05.2012 - 11:29) dadli написал(а):
dikey
вместо : пишите {
вместо : пишите {
Спустя 3 минуты, 55 секунд (22.05.2012 - 11:33) dikey написал(а):
dadli сделал так
<?phpчет не помогло
foreach($_SESSION['cart'] as $id => $quantity)
{
$product = get_product($id);
?>
<tr>
<td ><?php echo $product['name'];?>15</td>
<td ><?php echo $product['price'];?></td>
<td ><input type="text" size="2" name="<?php echo $id;?>" maxlength="2" value="<?php echo $quantity;?>" /></td>
<td ><?php echo $product['price'] * $quantity;?></td>
</tr>
<?php } ?>
Спустя 5 минут, 17 секунд (22.05.2012 - 11:39) Игорь_Vasinsky написал(а):
<h2 align="center">Ваша корзина товаров</h2>
<?php if($_SESSION['cart'] != '0'): ?>
<form action="" method="post" id="cart-form">
<table style="color:#000" align="center" cellspacing="0" cellpadding="10" border="0">
<tr>
<th>Товар</th>
<th>Цена</th>
<th>Кол-во</th>
<th>Всего</th>
</tr>
<?php foreach($_SESSION['cart'] as $id => $quantity): ?>
<?php $product = get_product($id); ?>
<tr>
<td align="center"><?=$product['name'];?>15</td>
<td align="center"><?=$product['price'];?></td>
<td align="center"><input type="text" size="2" name="<?=$id;?>" maxlength="2" value="<?=$quantity;?>" /></td>
<td align="center"><?=$product['price'] * $quantity;?></td>
</tr>
<?php endforeach;?>
</table>
<p class="total" align="center">Общая сумма заказа: <span class="product-price"> $</span></p>
<p align="center"><input type="submit" name="update" value="Обновить" /></p>
</form>
<?php else:?>
Ваша корзина пуста!
<?php endif;?>
Спустя 8 минут, 4 секунды (22.05.2012 - 11:47) dikey написал(а):
и так не работает
Спустя 7 минут, 27 секунд (22.05.2012 - 11:54) Игорь_Vasinsky написал(а):
синтаксис правильный у меня. значит у тя логика не правильная.
Спустя 25 минут, 8 секунд (22.05.2012 - 12:19) dikey написал(а):
Игорь_Vasinsky у меня php 5.3 и короткие теги типа <?=$product['name'];?> возможно не будут работать поэтому целесообразно использовать полные теги <?php echo $product['name'];?> что я и делаю.
Используя ваш синтаксис, оставляя его неизменным приводит к такому же результату к которому приводит мой изначальный код.
Моя логика делает вывод что раз я должен использовать полные теги надо заменить короткие теги на полные, что я и сделал. Итог ничем не отличается.
Вывод ваш синтаксис с полным тегом и с коротким не работает)
Используя ваш синтаксис, оставляя его неизменным приводит к такому же результату к которому приводит мой изначальный код.
Моя логика делает вывод что раз я должен использовать полные теги надо заменить короткие теги на полные, что я и сделал. Итог ничем не отличается.
Вывод ваш синтаксис с полным тегом и с коротким не работает)
Спустя 12 минут, 2 секунды (22.05.2012 - 12:31) walerus написал(а):
Попробуй
И в
<td ><?php echo $product['price'] * $quantity;?></td>заменить на
<td ><?php echo ( $product['price'] * $quantity); ?></td>
И в
<td ><?php echo $product['name'];?>15</td>цифра 15ть так и надо ?
Спустя 1 минута, 50 секунд (22.05.2012 - 12:33) Kuliev написал(а):
Что за тип данных
Почему вы сначала его сравниваете как СТРОКУ
А потом пытаетесь из СРОКИ перебрать массив :blink:
$_SESSION['cart']?
Почему вы сначала его сравниваете как СТРОКУ
А потом пытаетесь из СРОКИ перебрать массив :blink:
Спустя 3 минуты, 4 секунды (22.05.2012 - 12:36) Игорь_Vasinsky написал(а):
массив одномерный id=>кол-во
Спустя 1 минута, 4 секунды (22.05.2012 - 12:37) walerus написал(а):
Kuliev Мб, у него где то присваивается "0", если допустим что то не "срослось", а если все гут, то в переменной массив
Спустя 1 минута, 17 секунд (22.05.2012 - 12:38) Kuliev написал(а):
Цитата (Игорь_Vasinsky @ 22.05.2012 - 12:36) |
массив одномерный id=>кол-во |
Это Ваше предположение?
Спустя 2 минуты, 36 секунд (22.05.2012 - 12:41) Игорь_Vasinsky написал(а):
Цитата |
Kuliev Мб, у него где то присваивается "0", если допустим что то не "срослось", а если все гут, то в переменной массив |
видимо так и есть. тока зачем, когда можно сделать так
$order = isset($_SESSION['cart']) ? $_SESSION['cart'] : false;
и потом
if($order)
{
// код
}
Цитата |
Это Ваше предположение? |
foreach($_SESSION['cart'] as $id => $quantity): ?>
это анализ кода
а если небыло выбора то "0"
Спустя 46 секунд (22.05.2012 - 12:42) Kuliev написал(а):
Цитата (walerus @ 22.05.2012 - 12:37) |
Kuliev Мб, у него где то присваивается "0", если допустим что то не "срослось", а если все гут, то в переменной массив |
Возможно и так, но все таки нужно уточнить у автора. Мало ли что он там на кодил!
И перед циклом нужно проверку сделать что перед нами массив is_array()
Спустя 37 секунд (22.05.2012 - 12:42) walerus написал(а):
ТС чего то "подвис" , dikey что там с результатами ?
Игорь
Игорь
Цитата |
видимо так и есть. тока зачем, когда можно сделать так |
Мы не ищем легких путей
Оффтоп:
Kuliev Число моего автомобиля 6 - это как было посчитано ?
Оффтоп:
Kuliev Число моего автомобиля 6 - это как было посчитано ?
Спустя 6 минут, 10 секунд (22.05.2012 - 12:49) Kuliev написал(а):
Цитата (walerus @ 22.05.2012 - 12:42) | ||
ТС чего то "подвис" , dikey что там с результатами ? Игорь
Мы не ищем легких путей Оффтоп: Kuliev Число моего автомобиля 6 - это как было посчитано ? |
хз.. нужно спросить у авторов данного сервиса
Спустя 1 минута, 24 секунды (22.05.2012 - 12:50) Игорь_Vasinsky написал(а):
Иммитация (+ сумма всех заказов)
<?php
header("Content-type: text/html; charset=utf-8");
session_start();
$_SESSION['cart'] = array('0'=>2, '1'=>5, '2'=>220);
$productArr = array(
array('id'=>0, 'name'=>'имя1', 'price'=>3, 'quantity'=>'3'),
array('id'=>1, 'name'=>'имя2', 'price'=>30, 'quantity'=>'32'),
array('id'=>2, 'name'=>'имя3', 'price'=>300, 'quantity'=>'31')
);
function get_product($id)
{
global $productArr;
return $productArr[$id];
}
?>
<h2 align="center">Ваша корзина товаров</h2>
<?php if($_SESSION['cart'] != '0'): ?>
<form action="" method="post" id="cart-form">
<table style="color:#000" align="center" cellspacing="0" cellpadding="10" border="0">
<tr>
<th>Товар</th>
<th>Цена</th>
<th>Кол-во</th>
<th>Всего</th>
</tr>
<?php $total = 0;?>
<?php foreach($_SESSION['cart'] as $id => $quantity): ?>
<?php
$product = get_product($id);
$total = $total + ($product['price'] * $quantity);
?>
<tr>
<td align="center"><?=$product['name'];?>15</td>
<td align="center"><?=$product['price'];?></td>
<td align="center"><input type="text" size="2" name="<?=$id;?>" maxlength="2" value="<?=$quantity;?> шт." /></td>
<td align="center"><?=$product['price'] * $quantity;?></td>
</tr>
<?php endforeach;?>
</table>
<p class="total" align="center">Общая сумма заказа: <span class="product-price"> $<?=$total;?></span></p>
<p align="center"><input type="submit" name="update" value="Обновить" /></p>
</form>
<?php else:?>
Ваша корзина пуста!
<?php endif;?>
Спустя 7 минут, 50 секунд (22.05.2012 - 12:58) Игорь_Vasinsky написал(а):
обновил - теперь сумму заказа считает
Спустя 3 минуты, 43 секунды (22.05.2012 - 13:02) Игорь_Vasinsky написал(а):
но я всё равно придерживаюсь такой логике
Цитата |
$order = isset($_SESSION['cart']) ? $_SESSION['cart'] : false; и потом if($order) { // код } |
Спустя 34 минуты, 40 секунд (22.05.2012 - 13:36) dikey написал(а):
Вывод ошибок поставил получилось вот что
Notice: Undefined variable: _SESSION in B:\Program Files\Apache Software Foundation\cart.php on line 8
Notice: Undefined variable: _SESSION in BB:\Program Files\Apache Software Foundation\cart.php on line 21
Warning: Invalid argument supplied for foreach() in B:\Program Files\Apache Software Foundation\cart.php on line 21
сессия открывается на главной странице
Notice: Undefined variable: _SESSION in B:\Program Files\Apache Software Foundation\cart.php on line 8
Notice: Undefined variable: _SESSION in BB:\Program Files\Apache Software Foundation\cart.php on line 21
Warning: Invalid argument supplied for foreach() in B:\Program Files\Apache Software Foundation\cart.php on line 21
сессия открывается на главной странице
<?php
session_start();
include("db_fns.php");
include("cart_fns.php");
if (!isset($_SESSION['cart']))
{
$_SESSION['cart'] = array();
$_SESSION['total_items'] = 0;
$_SESSION['total_prise'] = '0.00';
}
$view = empty($_GET['view']) ? 'index' : $_GET['view'];
switch($view)
{
case('index'):
$products = get_products();
break;
case('cart'):
break;
case('add_to_cart'):
header('Location:index.php?view=index');
break;
}
include("left_menu/centr.php");
?>
Спустя 2 минуты, 51 секунда (22.05.2012 - 13:39) Kuliev написал(а):
Warning: Invalid argument supplied for foreach() in B:\Program Files\Apache Software Foundation\cart.php on line 21
Про что я Вам господа и говорил!
Про что я Вам господа и говорил!
Спустя 4 минуты, 22 секунды (22.05.2012 - 13:43) Kuliev написал(а):
запусти вот это
<h2 align="center">Ваша корзина товаров</h2>
<?php
if($_SESSION['cart'] != '0')
{
?>
<form action="" method="post" id="cart-form">
<table style="color:#000" align="center" cellspacing="0" cellpadding="10" border="0">
<tr>
<th>Товар</th>
<th>Цена</th>
<th>Кол-во</th>
<th>Всего</th>
</tr>
<?php
echo '<pre>';
print_r($_SESSION['cart']);
echo '</pre>';
foreach($_SESSION['cart'] as $id => $quantity):
$product = get_product($id);
?>
<tr>
<td align="center"><?php echo $product['name'];?>15</td>
<td align="center"><?php echo $product['price'];?></td>
<td align="center"><input type="text" size="2" name="<?php echo $id;?>" maxlength="2" value="<?php echo $quantity;?>" /></td>
<td align="center"><?php echo $product['price'] * $quantity;?></td>
</tr>
<?php endforeach;?>
</table>
<p class="total" align="center">Общая сумма заказа: <span class="product-price"> $</span></p>
<p align="center"><input type="submit" name="update" value="Обновить" /></p>
</form>
<?php
}
else
{
echo "Ваша корзина пуста!";
}
?>
Спустя 3 минуты, 15 секунд (22.05.2012 - 13:47) Игорь_Vasinsky написал(а):
если товар не был добавлен - то да сессионный элемент с ключом cart - не существует. я писал выше вариант с тернарным оператором.
везде вместо $_SESSION['cart'] юзать $order
или проверять так
$order = isset($_SESSION['cart']) ? $_SESSION['cart'] : false;
и потом
if($order)
{
// код
}
везде вместо $_SESSION['cart'] юзать $order
или проверять так
if(isset($_SESSION['cart']))
Спустя 14 минут, 8 секунд (22.05.2012 - 14:01) dikey написал(а):
Игорь_Vasinsky ваш код по какой то причине не запускается.
Kuliev пробывал ваш код, захожу в каталог товаров, нажимаю добавить в корзину перехожу в корзину а там пусто
Kuliev пробывал ваш код, захожу в каталог товаров, нажимаю добавить в корзину перехожу в корзину а там пусто
Спустя 2 минуты, 26 секунд (22.05.2012 - 14:03) dikey написал(а):
код каталога
функция add_to_cart
<?php
foreach($products as $item):
?>
<table style="color:#000" width="739" cellspacing="0">
<tr >
<td colspan="2" style="text-align: center; font-size: 20px; font-weight: bold;"><?php echo $item['name']; ?></td>
</tr>
<tr>
<td width="212" rowspan="8"><div><img src="images/<?php echo $item['img'];?>" alt="" width="209" height="198" /></div></td>
<td width="506">Цена: <?php echo $item['price']; ?> руб.</div></td>
</tr>
<tr>
<td>Вылет: <?php echo $item['vilet']; ?></td>
</tr>
<tr>
<td>Город: <?php echo $item['gorod']; ?></td>
</tr>
<tr>
<td>Страна: <?php echo $item['strana']; ?></td>
</tr>
<tr>
<td>Отел: <?php echo $item['otel']; ?></td>
</tr>
<tr>
<td>Длительность: <?php echo $item['dlitelnost']; ?></td>
</tr>
<tr>
<td>Включено: <?php echo $item['vklucheno']; ?></td>
</tr>
<tr>
<td><a href="index.php?view=add_to_cart&id=<?php echo $item['id'];?>">Добавить в корзину</a></td>
</tr>
</table>
<?php endforeach;?>
функция add_to_cart
<?
function add_to_cart($id)
{
if(isset($_SESSION['cart'][$id]))
{
$_SESSION['cart'][$id]++;
return true;
}
else
{
$_SESSION['cart'][$id] = 1;
return true;
}
return false;
}
?>
Спустя 46 секунд (22.05.2012 - 14:04) Игорь_Vasinsky написал(а):
покажи с моим кодом.
session_start() то хоть есть?
session_start() то хоть есть?
Спустя 9 минут, 41 секунда (22.05.2012 - 14:14) dikey написал(а):
Спустя 1 минута, 48 секунд (22.05.2012 - 14:15) Игорь_Vasinsky написал(а):
вам на стока уже всё расжевали, я даже смодеоировал и данные сессии в корзине и функцию, вы ни как не можете сделать. ленитесь.
Спустя 1 минута, 46 секунд (22.05.2012 - 14:17) Kuliev написал(а):
Цитата (dikey @ 22.05.2012 - 14:14) |
вот что происходит когда сохраняю ваш код session_start() есть он находится на главной странице код которого я писал выше |
Если у вас все в разных файлах и вы не используете MVC то session_start() нужно прописывать в каждом файле и не забывайте что заголовки должный уйти раньше чем вывод в браузер!!! А то будут ошибки.
Спустя 2 минуты, 1 секунда (22.05.2012 - 14:19) Kuliev написал(а):
Предлагаю тему закрыть т.к. тема себя исчерпала.
ТС получил ответ в полном объеме, даже с лихвой.
Будут другие вопросы создайте новую тему.
ТС получил ответ в полном объеме, даже с лихвой.
Будут другие вопросы создайте новую тему.