|
|
|
| Здравствуйте!
У меня есть массив который делит сессию на две части и выводит данные в формы
\<?php
foreach($_SESSION['goods'] as $key => $val)
{
echo '<form name="form1" method="GET"><input type="hidden" name="id[]" value="'.$key.'">
<p>info <input type="text" name="number[]" value="'.$val.'" maxlength="2" size="2" style="text-align:center;"></p>';
}
echo '<p><input type="submit" name="formbutton1" value="Update"></p></form>';
?>
|
И отправляет через GET обновление, но массив который изменяет сессию, что то глючит:
<?php
for($i=0;$i<=count(($_GET['id']) && ($_GET['number'])) ;$i++){
$_SESSION['goods'][$_GET['id'][$i]] = $_GET['number'];
}
?>
А делаю я корзину для магазина!
|
| |
|
|
|
|
|
|
|
для: JESS
(05.08.2008 в 02:44)
| | Не понятно в чем проблема.
P.S.
count(($_GET['id']) && ($_GET['number']))
|
Вот тут у Вас глючит. Правда из-за феноменальной постановки вопроса понять, что же Вы хотели изобразить, никак не получается.
[поправлено модератором] | |
|
|
|
|
|
|
|
для: DDK
(05.08.2008 в 02:50)
| | В корзине выводитья товар, и рядом форма с количеством, и снизу кнопка обновить, то при измненинии того или иного товара, соответственно и меняеться сессия, но при нажатии до 3 раз пишется Array не первых друх товаров, и довабляеться довар, сессия без id и количества... | |
|
|
|
|
|
|
|
для: JESS
(05.08.2008 в 03:13)
| |
count(($_GET['id']) && ($_GET['number']))
|
А что Вы хотели подсчитать конкретно этой конструкцией ? | |
|
|
|
|
|
|
|
для: DDK
(05.08.2008 в 03:29)
| | ничего не хотел так то подсчитать, хотел просто вывести при помощи это го скрипта изменить количество нужного нам товара, и если у товара количество равно 0 то сессия удаляеться, вот в этом я нуждаюсь в помощи. =)
$_session['goods']['Id товара'] = "количество"; | |
|
|
|
|
|
|
|
для: JESS
(05.08.2008 в 03:35)
| | Ммм...мда. Ну хорошо. А что хотя бы хранится в $_GET['id'] и $_GET['number'] ? | |
|
|
|
|
|
|
|
для: DDK
(05.08.2008 в 10:59)
| | в $_GET['id] id номер товара, $_GET['number'] количество товара =) | |
|
|
|
|
|
|
|
для: JESS
(05.08.2008 в 15:37)
| | Так а в чем проблема? Что не работает то? :-) | |
|
|
|
|
|
|
|
для: Саша
(05.08.2008 в 15:45)
| | Ну этот код должен изменять количество товара под нужным id, но вместо этого происходит добавлентие пустой сессии и за место 2 двух товаров пишется array.
ну а сосчитать я ничего не хотел, у меня был похожый код для удаления с чекбоксами для одной GET или POST | |
|
|
|
|
|
|
|
для: JESS
(05.08.2008 в 16:24)
| | Я сдаюсь! :))) | |
|
|
|
|
|
|
|
для: JESS
(05.08.2008 в 16:24)
| | [поправлено модератором] | |
|
|
|
|
|
|
|
для: t3ma
(05.08.2008 в 16:37)
| | да, я пытаюсь, кка то не идет...
У меня из базы воводяться товары, кнопочкой добавить в корзину,(создается сессия $_SESSION['goods'][' id товара'] = количество ) мы добавляем корзину, а так же и другие товары, потом переходитм в корзину, там сессии делятсья массивом и выводяться id товара и количество, но количество надо изнемить как покупатель пожилает,
<?php
foreach($_SESSION['goods'] as $key => $val)
{
echo '<form name="form1" method="GET"><input type="hidden" name="id[]" value="'.$key.'">
<p>info# '.$key.'
<input type="text" name="number[]" value="'.$val.'" maxlength="2" size="2" style="text-align:center;">
<a href="?delete_it='.$key.'">X</a></p>';
}
echo '<p><input type="submit" name="formbutton1" value="Uppdatera"></p></form>';
?>
|
Вот этот массив, выводит инфо о товаре и количество в форме, и снизу кнопка обновить если количство изменинено, ... вот я не могу написать скрипт на что бы сессию можно было изнеменить ,
как бы сказать количество товара в нужном товаре... | |
|
|
|
|
|
|
|
для: JESS
(05.08.2008 в 16:53)
| | Передаваю форму через GET имена полей нельзя делать массивами, такое возможно только через POST.
Тобиш это должно быть примерно так:
Вывод:
<?php
echo '<form name="form1" method="POST">';
foreach($_SESSION['goods'] as $key => $val)
{
echo '<input type="hidden" name="id[]" value="'.$key.'">
<p>info# '.$key.'
<input type="text" name="number[]" value="'.$val.'" maxlength="2" size="2" style="text-align:center;">
<a href="?delete_it='.$key.'">X</a></p>';
}
echo '<p><input type="submit" name="formbutton1" value="Uppdatera"></p></form>';
?>
Пересчёт:
<?php
for($i=0;$i<count($_GET['id']) ;$i++)
{
if((int) $_GET['number'][$i] > 0) $_SESSION['goods'][$_GET['id'][$i]] = $_GET['number'][$i];
}
?>
|
| |
|
|
|
|
|
|
|
для: JESS
(05.08.2008 в 15:37)
| | > count(($_GET['id']) && ($_GET['number']))
А что это? | |
|
|
|
|
|
|
|
для: JESS
(05.08.2008 в 02:44)
| | По поводу последнего вопроса к вашей теме "Корзина" из раздела MySQL. Вот пример корзины - добавление товара в нее, редактирование (изменение количества товаров в корзине), удаление корзины. В примере предполагается, что добаление товара со страницы происходит по 1 штук"а".
<?
session_start();
//это будет имитировать таблицу товаров
$cat = array(
79 => array('name'=>'Топор','mony'=>120),
102 => array('name'=>'Молоток','mony'=>60),
89 => array('name'=>'Стаместка','mony'=>35),
211 => array('name'=>'Ножовка','mony'=>86)
);
//тут добавляем товар в корзину,
//а так как добавляем по 1,
//проверку на наличие не делаем
if (isset($_GET['add'])) {
//если корзина не создавалась, создаем
if (!isset($_SESSION['goods'])) $_SESSION['goods'] = array();
//проверяем на всякую лажу и добавление товара в корзину
$id = intval($_GET['add']);
if ($id > 0) $_SESSION['goods'][$id] = 1;
}
//работаем с корзиной
if (isset($_POST['update'])) { //если запрос на обновление корзины
foreach($_POST['prod'] as $key => $val) {
$key = intval($key); //получаем id товара
if ($key > 0) { //если все ОК
$val = intval($val); //чтобы не было лажи
if (isset($_POST['del']) && in_array($key, $_POST['del']) || !$val) {
//ели выбран чекбокс на удаление товара или поле количества пустое
//находим такой товар в корзине и удаляем его
if (array_key_exists($key, $_SESSION['goods'])) unset($_SESSION['goods'][$key]);
} else $_SESSION['goods'][$key] = $val; //иначе новое количество товара
}
}
}
//если запрос на удаление корзины, удаляем
if (isset($_POST['clear'])) unset($_SESSION['goods']);
//типа получаем товары из базы и выводим на страницу
foreach($cat as $id => $val) {
echo $val['name'] . ", цена: " .$val['mony']. " руб. <a href=\"?add=" .$id. "\">Добавить в корзину</a><br>";
}
//для красоты )
echo "<hr width=\"100%\" size=\"1\">";
//проверяем корзину, и если не пуста, выводим ее на страницу
//без комментов, смотрите сами
if (!empty($_SESSION['goods'])) {
echo "<form method=\"post\">
<input type=\"submit\" name=\"clear\" value=\"Очистить корзину\">
<table bgcolor=\"#696969\" cellspacing=\"1\" cellpadding=\"4\" width=\"100%\">
<tr bgcolor=\"#f5f5f5\">
<td>Товар</td>
<td>Цена, руб</td>
<td>Выбрано, шт</td>
<td>Стоимость, руб</td>
<td>Удалить</td>
</tr>";
$k = 0;
$m = 0;
foreach($_SESSION['goods'] as $key => $val) {
$k += $val;
$m += $cat[$key]['mony']*$val;
echo "<tr bgcolor=\"#ffffff\">
<td><a href=\"goods.php?id=" .$key. "\">" .$cat[$key]['name']. "</a></td>
<td>" .$cat[$key]['mony']. "</td>
<td><input type=\"text\" name=\"prod[" .$key. "]\" value=\"" .$val. "\"></td>
<td>" .$cat[$key]['mony']*$val. "</td>
<td><input type=\"checkbox\" name=\"del[]\" value=\"" .$key. "\"></td>
</tr>";
}
echo "<tr bgcolor=\"#ffffff\">
<td colspan=\"2\">Всего</td>
<td>" .$k. "</td>
<td>" .$m. "</td>
<td> </td>
</tr>
</table>
<input type=\"submit\" name=\"update\" value=\"Обновить корзину\">
</form>";
} else print "Ваша корзина пуста!";
?>
|
Как же вы собираетесь магазин написать? | |
|
|
|