первая: почему то в ie не собираются данные из сессии - при добавлении нового товара стирается предыдущий, ну и при обновлении страницы все пропадает. в опере, мозилле и хроме все нормально
форма добавления товаров в корзину:
<form action="" method="post" name="form2" id="form2">
<select name="col_zakaz" id="col_zakaz">
<option value="1" selected="selected">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<input name="id_zakaz" type="hidden" value="<?php echo $arr['id'] ?>" />
<input type="submit" name="button3" id="button3" value="Добавить" />
</form>
вот корзина:
<table align="center" class="korz" width="200" height="100" border="0" bordercolor="#CCC" cellpadding="0" cellspacing="0">
<tr>
<td height="30" valign="top" colspan="2" align="left" class="smallText"><a href="zakaz.php">В корзине</a></td>
</tr>
<?php
$id_zakaz=$_POST["id_zakaz"];
$col_zakaz=$_POST["col_zakaz"];
if ($id_zakaz) {$_SESSION['zakaz'][$id_zakaz]=$col_zakaz;}
if($_SESSION['zakaz'] != '') {
foreach($_SESSION['zakaz'] as $key => $value)
{
$res_rez = mysql_query("SELECT title FROM tovar WHERE id='$key'");
$arr_rez=mysql_fetch_array($res_rez);
if($value != '0') {
echo "<tr><td valign='top' align='left' class='smallText'>".$arr_rez['title']."</td><td align='left' valign='top' width='50' class='smallText'> - $value шт.</td></tr>";
}
}
}
else echo "<tr><td valign='top' align='center' colspan='2' class='smallText'>Нет выбранных товаров</td></tr>";
?>
</table>
вторая: как организовать пересчет количества товаров одной кнопкой. для каждого по отдельности у меня получилось сделать, но это просто ужасно выглядит)
<?php
echo "<tr align='center'><td width='250' class='smallText'>Наименование</td><td width='100' class='smallText'>Количество</td><td align='center' width='125' class='smallText'>Цена за 1 шт</td><td align='center' width='125' class='smallText'>Всего</td></tr>";
$id_zakaz=$_POST["id_zakaz"];
$col_zakaz=$_POST["col_zakaz"];
if ($id_zakaz) {$_SESSION['zakaz'][$id_zakaz]=$col_zakaz;}
if($_SESSION['zakaz'] != '') {
foreach($_SESSION['zakaz'] as $key => $value)
{
if($value != '0') {
$res_rez = mysql_query("SELECT * FROM tovar WHERE id='$key'");
$arr_rez=mysql_fetch_array($res_rez);
$cena_tyres=$arr_rez['cena']*$value;
$all_tyres+=$cena_tyres;
echo "<tr><td class='smallText'>".$arr_rez['title']."</td><td align='center' class='smallText'><form id='form2' name='form2' method='post' action=''>
<input size='1' type='text' name='col_zakaz' id='col_zakaz' value='$value' />
<input name='id_zakaz' type='hidden' value='$arr_rez[id]' />
шт. </form>
</td><td width='100' class='smallText'>".$arr_rez['cena']." грн.</td><td width='100' class='smallText'><font color='#FF0000'>".$cena_tyres."</font> грн. </td></tr>";
}
}
}
else echo "<tr><td align='center' colspan='4' class='smallText'>Нет выбранных товаров</td></tr>";
?>
Спустя 1 день, 22 часа, 50 минут, 34 секунды (30.07.2011 - 10:05) XCross написал(а):
Попробуй session_start(); в самом начале запихнуть.
Спустя 9 минут, 42 секунды (30.07.2011 - 10:15) Risyaalex написал(а):
хм) сессии открываю везде. но не работает только в IE
Спустя 2 часа, 32 минуты, 7 секунд (30.07.2011 - 12:47) XCross написал(а):
сессии не зависят от версии браузера. Они хранятся на сервере.
Спустя 31 минута, 36 секунд (30.07.2011 - 13:19) Risyaalex написал(а):
да я ж об этом и говорю! сессии везде открыты
а не работает только в IE
if (!isset ($_SESSION)) session_start();
а не работает только в IE
Спустя 41 минута, 49 секунд (30.07.2011 - 14:01) Arni написал(а):
Цитата (Risyaalex @ 30.07.2011 - 10:19) |
if (!isset ($_SESSION)) session_start(); |
А это еще зачем?
Спустя 3 часа, 20 минут, 5 секунд (30.07.2011 - 17:21) Risyaalex написал(а):
ну зачем открывать сессию если она уже существует? проверяю, если не существует - тогда открываю