| |
|
|
| | if ($_SERVER['REQUEST_METHOD'] == 'POST')
{ $j=count($_SESSION);echo ' j='.$j;$j++;
$k='k'.$j;
$_SESSION['k']=$_POST['uin'];
$k='k'.$j++;
$_SESSION['k']=$_POST['kol'];
foreach($_SESSION as $value){
echo '<tr><td>'.$value.'</td></tr>';
}
echo count($_SESSION);
}
Суть: простой интернет-магазин. При щелчке на кнопке в массив SESSION товары добавляются только 1 раз. А далее только обновляются.
То есть при следующем щелчке count($_SESSION) почему-то опять равен 2 :(
Что я делаю не так? | |
| |
|
|
| |
|
|
| |
для: jetty
(29.05.2006 в 21:16)
| | | Может:
echo count($_SESSION['k']);
|
| |
| |
|
|
| |
|
|
| |
для: Boss
(29.05.2006 в 21:37)
| | | хмм. что это даст?
там элементы массива k1, k2,... ..., k15,... их количество растёт с увеличением количества заказанных товаров.
или нельзя испльзовать в качестве переменных цифры ВООБЩЕ? | |
| |
|
|
| |
|
|
| |
для: jetty
(29.05.2006 в 22:07)
| | | Массив $_SESSION не растет потому, что каждый раз Вы присваиваете один и тот же элемент с индексом 'k'.
С другой стороны, это и к лучшему, мало ли что еще захочется в сессии хранить - что ж теперь всю сессию под корзину пустить?
Я бы сделал так.
<?
echo '<table>';
$car = array();
if (isset($_POST['uin']))
{
session_start(); // без этого вообще сессии не откроются.
if(isset($_SESSION['car']))
$car = $_SESSION['car'];
$uin = intval($_POST['uin']);
$kol = empty($_POST['kol']) ? 1 : intval($_POST['kol']);
$car[] = array('uin' => $uin, 'kol' = $kol);
$_SESSION['car'] = $car;
}
foreach($car as $row)
echo '<tr><td>'.$row['uin'] . ' x '. $row['kol'].'</td></tr>';
echo '<t/able>';
?>
|
| |
| |
|
|
| |
|
|
| |
для: jetty
(29.05.2006 в 22:07)
| | | присваивание идет в один и тот же элемент массива с индексом 'k' (это строка, ее значение не меняется при изменении $k
<?
$j++;
$k = 'k'.$j;
$_SESSION[$k]
|
| |
| |
|
|