Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Корзина для магазина 
:(
    Опции темы
kyc0k
Дата 3.5.2008, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 3.5.2008

Репутация: нет
Всего: нет



Я начинающий в ПХП, но вот нужно сделать мне слдеующее:
Для интернет магазина нужно написать корзину покупок, осуществлять буду с помощью сессий без использования БД.
Работать будет примерно так:
Есть некая форма, где отображены товары, рядом с каждым товаром имеется кнопка и текстовой поле(количество выбранного товара).
Пользователь вписывает в соответствующее поле количество и нажимает кнопку эти данные улетают в массив сессии.
Отображается это будет в таком виде с верху каждой страницы, где разумеется будет стартовать сессия
Вот так примерно:

Ваша корзина:
Чемоданы кол-во: 3 Удалить
Прищепки кол-во: 8 Удалить

И еще кнопка удалить будет удалять товар полностью, а не поодноому!
Кто может помочь в осуществлении данной корзины какими либо ссылками и полезной инфой, если кто-то подобное делал, то подскажите что к чему и насколько это сложно!
Заранее спасибо!))))
PM MAIL   Вверх
Feldmarschall
Дата 3.5.2008, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Не сложнее, чем любой другой скрипт.
Все сводится к работе с формами. Добавить - форма. Удалить - форма. Ты умеешь обрабатывать формы? 
Сессия - это массив. Если ты умеешь выводить содержимое массива в цикле, то никаких проблем не возникнет


Это сообщение отредактировал(а) Feldmarschall - 3.5.2008, 19:32
PM   Вверх
kyc0k
Дата 3.5.2008, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 3.5.2008

Репутация: нет
Всего: нет



Цитата(Feldmarschall @ 3.5.2008,  19:27)

Сессия - это массив. Если ты умеешь выводить содержимое массива в цикле, то никаких проблем не возникнет

В этом то и проблема,  не получается у меня(((,


Код

<?
session_start();
$_SESSION['id'];
if($_GET['id']){
if($_SESSION['id'][$_GET['id']]){
$_SESSION['id'][$_GET['id']]=$_GET['count'];
}

else{
$_SESSION['id'][$_GET['id']]=$_GET['count'];
}
}

echo "".$_SESSION['id'][$_GET['id']];
?>
<form method="GET">

<input type="text" name="count" ><br>
<input type="submit" name="id" value="Положить"><br>

</form>


ну вот на стряпал, я вот такой код, а дальше не едит ни чего, не понимаю я как несколько кнопок в массив класть!


M
MoLeX
Модератор: пользуемся кнопкой код


Это сообщение отредактировал(а) MoLeX - 4.5.2008, 05:59
PM MAIL   Вверх
Feldmarschall
Дата 3.5.2008, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



С таким подходом и гостевую не напишешь - не то что корзину.
Почему не писать честно - "научите меня программировать с нуля"

Торопиться со сложением уже лежащего в корзине товара не надо. Научись хотя бы просто класть.
То есть, просто присваивать $_SESSION['id']=$_GET['count'];
Дальше надо ввести идентификатор товара, и передавать его вместе с количеством. Верно?
PM   Вверх
kyc0k
Дата 3.5.2008, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 3.5.2008

Репутация: нет
Всего: нет



Цитата

С таким подходом и гостевую не напишешь - не то что корзину.
Почему не писать честно - "научите меня программировать с нуля"

Ну да, согласен smile 

Цитата

Дальше надо ввести идентификатор товара, и передавать его вместе с количеством. Верно? 

ну что то вроде того, как я понял передаем идентификатор по нажатию кнопки, самим идентификатором служит name кнопки или её id, ну а количеством будет value текстового поля вроде так или нет???
PM MAIL   Вверх
Feldmarschall
Дата 3.5.2008, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



ну, можно и так, да.
Хотя если идентификатор цифровой, то в качестве имени использовать не получится.
поэтому лучше добавить скрытое поле
Код

<input type="text" name="count" ><br>
<input type="hidden" name="id" value="12">
<input type="submit"  value="Положить"><br>


а в скрипте, соответственно:
Код

$_SESSION['cart'][$_GET['id']]=$_GET['count'];


в сессию мы кладем не прямо, а в массив cart потому, что в сессии тоже нельзя цифровые ключи



Это сообщение отредактировал(а) Feldmarschall - 3.5.2008, 22:21
PM   Вверх
kyc0k
Дата 4.5.2008, 06:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 3.5.2008

Репутация: нет
Всего: нет



спасибо конечно за небольшой пример, но ведь это только для одной пары субмита и текстового, а вот если их будет много, в этом то и основная проблема !
PM MAIL   Вверх
Cache
Дата 4.5.2008, 07:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 6.11.2007

Репутация: нет
Всего: нет



kyc0k
у каждого товара своя форма
и везде она одинакова, кроме name, в который записан уникальный артикул товара
PM MAIL   Вверх
Feldmarschall
Дата 4.5.2008, 07:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



kyc0k, в этом случае id товара можно передавать в имени поля count
Код

<input type="text" name="count[11]"><br>
<input type="text" name="count[12]"><br>
<input type="text" name="count[13]"><br>
<input type="submit"  value="Положить"><br>

А в скрипте в цикле перебирать массив $_POST['count']
PM   Вверх
kyc0k
Дата 4.5.2008, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 3.5.2008

Репутация: нет
Всего: нет



Код

<form name="q" method="GET">
<input type ="text" name="count"><br>
<font>Утюг</font>
<input type ="submit" value ="Положить"><br>
</form>
<form name="w" method="GET">
<input type ="text" name="count"><br>
<font>Чемодан</font>
<input type ="submit" value ="Положить"><br>
</form>
<form name="e" method="GET">
<input type ="text" name="count"><br>
<font>Чехол</font>
<input type ="submit" value ="Положить"><br>
</form>  

Вот к примеру есть три формы, своя для каждого товара. И вот не получается у меня сделать так,
 указать количество, потом нажать кнопку в  форме "q" в сесиию пришло такое:
Утюг кол-во: 3
если указать количество  во второй форме "w" и нажать в ней же кнопку, то стало так:
Утюг кол-во: 3
Чемодан кол-во: 1

и т.д.
PM MAIL   Вверх
Feldmarschall
Дата 4.5.2008, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Ну я же писал выше, с примером.
где у тебя скрытое поле со словом утюг?
PM   Вверх
kyc0k
Дата 4.5.2008, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 3.5.2008

Репутация: нет
Всего: нет



Код

<form name="q" method="GET">
<input type ="text" name="count"><br>
<font>Утюг</font>
<input type="hidden" name="id" value="Утюг">
<input type ="submit" value ="Положить"><br>
</form>
<form name="w" method="GET">
<input type ="text" name="count"><br>
<font>Чемодан</font>
<input type="hidden" name="id" value="Чемодан">
<input type ="submit" value ="Положить"><br>
</form>
<form name="e" method="GET">
<input type ="text" name="count"><br>
<font>Чехол</font>
<input type="hidden" name="id" value="Чехол">
<input type ="submit" value ="Положить"><br>
</form> 

Ну вот и скрытое поле, правильно??
Тогда в ПХП что с сессиями делать?
PM MAIL   Вверх
Feldmarschall
Дата 4.5.2008, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



И код я тоже писал.
Какой смысл задавать вопросы, если ответы ты не читаешь?
PM   Вверх
kyc0k
Дата 4.5.2008, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 3.5.2008

Репутация: нет
Всего: нет



Код

<?
session_start();
$_SESSION['cart'][$_GET['id']];
$_SESSION['cart'][$_GET['id']]=$_GET['count'];

echo "".$_SESSION['cart'][$_GET['id']];
?>


Код

<form name="q" method="GET">
<input type ="text" name="count"><br>
<font>Утюг</font>
<input type="hidden" name="id" value="Утюг">
<input type ="submit" value ="Положить"><br>
</form>
<form name="w" method="GET">
<input type ="text" name="count"><br>
<font>Чемодан</font>
<input type="hidden" name="id" value="Чемодан">
<input type ="submit" value ="Положить"><br>
</form>
<form name="e" method="GET">
<input type ="text" name="count"><br>
<font>Чехол</font>
<input type="hidden" name="id" value="Чехол">
<input type ="submit" value ="Положить"><br>
</form> 

Эх... Читал я ответы, вот такой код получается, вот если я нажимаю кнопку в первой форме, то количество заносится, после вписываю количество в другой форме и нажимаю на кнопку, то значение из первой формы затирается последним!

Это сообщение отредактировал(а) kyc0k - 4.5.2008, 10:23
PM MAIL   Вверх
Feldmarschall
Дата 4.5.2008, 10:39 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



Во-первых, какую смысловую нагрузку несет простое написание имени переменной, которое ты везде добавляешь в свои скрипты:
Цитата(kyc0k @  4.5.2008,  10:19 Найти цитируемый пост)
$_SESSION['cart'][$_GET['id']];


во-вторых, ничего не затирается.
просто своим эхом ты выводишь только то, что добавил этой формой.
А для вывода массива надо использовать цикл.


PM   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0723 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.