![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Risyaalex |
|
||||
![]() Все идет по плану... ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 22.7.2010 Репутация: нет Всего: нет |
Помогите сделать пересчет товаров в корзине, данные собираются в сессию:
(мне удалось только сделать пересчет по каждому товару в отдельности, но это ужасно выглядит) вот код корзины:
обрабатывать пересчет товара должен 'update_zakaz.php', передаю массивы id товара и количество товара, а как правильно эти массивы обработать и вернуть?:
|
||||
|
|||||
| NFL |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 5.5.2009 Репутация: нет Всего: нет |
||||
|
||||
| Risyaalex |
|
|||
![]() Все идет по плану... ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 22.7.2010 Репутация: нет Всего: нет |
||||
|
||||
| NFL |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 5.5.2009 Репутация: нет Всего: нет |
Risyaalex,
Почему не if(isset($_SESSION['zakaz']))? И почему не order? Моск сломать можно Насчет проверки существования сессии.... по идее это не обязательно В реальном скрипте вам придется ставить E_ALL&~E_NOTICE и это избавит от отображения предупреждения, что сессия стартовала) |
|||
|
||||
| Risyaalex |
|
|||
![]() Все идет по плану... ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 22.7.2010 Репутация: нет Всего: нет |
ок
|
|||
|
||||
| NFL |
|
||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 5.5.2009 Репутация: нет Всего: нет |
Логичнее так:
И после session_start(); добавить ob_start();
Почему проверка на символ А если там ничего не будет? Что тогда? Может опять же на isset/!empty смотреть? echo делать - не очень кошерно, как по мне, но это на любителя. Я предпочитаю что нить такое:
Ну это было немножко критики А теперь - что у вас не получается? У вас есть список товаров в массиве $_SESSION['zakaz']? Пробегаетесь форычем и считаете foreach($_SESSION['zakaz'] as $k=>$v) { } если структура массива $_SESSION[zakaz] более сложная - выложите ее) |
||||||||
|
|||||||||
| Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
1 скрытие ошибок не есть гуд...
Добавлено @ 20:55 вроде так.
пс код не защищен и подвержен sql-injection $_POST["id_zakaz"] проверить и перебрать через фореач также проверить число или сразу intval() + чтобы не было пустых значений в масве иначе запрос феил. Это сообщение отредактировал(а) Sanchezzz - 31.7.2011, 20:57 -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
| NFL |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 137 Регистрация: 5.5.2009 Репутация: нет Всего: нет |
Sanchezzz, скрытие ошибок не есть гуд в процессе написания. на лайв однозначно E_NOTICE надо отключать
ЗЫ: не догнал, при чем тут implode По идее это одно число Айдишка текущего заказа, и достаточно просто _POST['id_zakaz'] |
|||
|
||||
| Risyaalex |
|
|||
![]() Все идет по плану... ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 22.7.2010 Репутация: нет Всего: нет |
спасибо за конструктивную критику, буду стараться соответствовать высоким нормам php)
по теме: данные (id заказа и количество) хранятся в SESSION[zakaz] при пересчете количества - передаются массивы id_zakaz[] и col_zakaz[] в update_zakaz.php мне их надо опять собрать в SESSION[zakaz] как их foreach-ем перебрать ? |
|||
|
||||
| mark2011 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 28.6.2011 Репутация: 2 Всего: 2 |
Мда, прочитал всю тему...
ТС, во-первых неплохо бы изучить документально поведение функции session_start() - она либо стартует новую сессию, либо цепляется к уже существующей. Во-вторых вот такой код:
всегда будет возвращать false, так как $_SESSION - суперглобалка, она всегда существует. В-третьих, прошу вас, не надо смешивать html и php, это ужасно смотрится и, по сути, нечитабельно... И в-четвёртых - пересчёт товара правильно осуществлять на ajax, по идее. Ну потому что вот юзер щёлкнул по кнопке "Пересчитать", ему динамически должно всё обновиться. Это будет логично. А если у вас этим занимается отдельный скрипт, то, получается, что сначала перенаправление идёт на update_zakaz.php, там что-то такое делается, а потом идёт уже не знаю куда перенаправление.... получается очень много действий. Логичнее это всё на ajax вынести, чтобы клиенту было легче )) Я просто сейчас делал инет-магазин, у меня всё именно так реализовано. |
|||
|
||||
| Risyaalex |
|
|||
![]() Все идет по плану... ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 22.7.2010 Репутация: нет Всего: нет |
ajax - дело хорошее.
но мне просто нужно из массивов $id_zakaz и $col_zakaz собрать массив $_SESSION['zakaz'] если данные не в массиве - собираю просто $_SESSION['zakaz'][$id_zakaz] = $col_zakaz с массивами так не получится, вот и спрашиваю, как это можно реализовать я учу php пока что, так что на идеальность реализации не претендую Добавлено через 3 минуты и 18 секунд я ходила на мини курсы, и преподаватель учил писать
так что пока с этим не столкнулась - писала вот так |
|||
|
||||
| Absinthe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 526 Регистрация: 4.5.2011 Репутация: 5 Всего: 11 |
А совет - учиться программировать на всяких "написать блог". Рано топикстартеру писать магазины. Надеюсь, это не готовый продукт, а курсовая, иначе заказчик встрял на переписывание |
|||
|
||||
| Risyaalex |
|
|||
![]() Все идет по плану... ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 22.7.2010 Репутация: нет Всего: нет |
мдя...
кто нибудь по теме ответит, или дальше поливать будете? я же написала что мне нужно, свой уровень я знаю и если бы не хотела учиться писала бы не на форумах а на фриланс |
|||
|
||||
| нуп |
|
|||
|
Ботокодер ![]() ![]() Профиль Группа: Участник Сообщений: 987 Регистрация: 22.6.2009 Где: Кременчуг Репутация: нет Всего: 33 |
Покажите что находится в массивах и какой в итоге массив вам нужно получить?
|
|||
|
||||
| Risyaalex |
|
|||
![]() Все идет по плану... ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 22.7.2010 Репутация: нет Всего: нет |
передаются методом post массивы id_zakaz[] и col_zakaz[] (id товара и количество)
нужно собрать в $_SESSION['zakaz'] |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |