Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Корзина в интернет-магазине

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
RayOfLight
Отправлено: 11 Апреля, 2010 - 19:08:14
Post Id



Новичок


Покинул форум
Сообщений всего: 47
Дата рег-ции: Дек. 2008  
Откуда: Калининград


Помог: 0 раз(а)




В общем, надо реализовать пересчет стоимости заказа при изменении количества. В сессии пользователя храню массив с id товара. Сначала хотел JavaScript'ом, но как с помощью него редактировать данные в сессии, не понимаю. Другой способ - пилить кнопку "Пересчитать", по нажатии которой новые количества будут через $_POST передаваться в сессию, но тогда придется пилить форму внутри формы? Подскажите, как это лучше сделать. Привожу код вывода списка заказанных товаров. Код бестолковый.

CODE (text):
скопировать код в буфер обмена
  1.  
  2. $action = $_GET['action'];
  3. switch ($action){
  4.         default:       
  5.                 echo "<div class='redirect' style='margin:0; padding-top: 7px;'>В корзине ".sizeof($arrgoods)." товаров</div>";
  6.                 echo "<div class='text' style='margin-top:0; border-top:0;'>";
  7.  
  8.                 echo "<form action='shop_order.php?action=send' method='post' name='order' onsubmit='return Check()'>";
  9.                 echo "<table width='100%' cellspacing='0'>";
  10.                
  11.                 $all = 0;
  12.                 foreach($arrgoods as $gid => $q){                      
  13.                         $getgood = mysql_query("select * from `goods` where `id`=$gid");
  14.                         $arrg = mysql_fetch_array($getgood);
  15.                         $all = $all + ($arrg['price']*$arrgoods[$gid]);
  16.                         echo "<tr><td class='order_item'>$lid<a href='shop.php?action=view&id=$gid'><b>".$arrg['name']."</b></a></td>";
  17.                         echo "<td class='order_item'><input type='text' size='1' name='q_$gid' value='$q' /> шт.</td>";
  18.                         echo "<td class='order_item' style='font-size:12px;'><input type='button' value='Удалить' onclick='top.location.href=\"shop_order.php?action=delete&id=$id\"'/></td>";
  19.                         echo "<td class='order_item' style='text-align:right;'><b><label name='sum'>".$arrg['price']."</label></b> у.е.</td></tr>";
  20.                 }
  21.                 echo "</table>";
  22.                 echo "<p style='border-top:2px solid #276100; text-align:right;'><b>Итого: &nbsp;<label id='sum'>$all</label> у.е.</b></p>";
  23.                 echo "</div>";
  24.         break;
  25. }
  26.  
 
 Top
scray
Отправлено: 11 Апреля, 2010 - 22:51:37
Post Id


Гость


Покинул форум
Сообщений всего: 68
Дата рег-ции: Апр. 2009  


Помог: 0 раз(а)




Вам подойдет AJAX, позволяет выполнять ассинхронные запросы, то есть ответ от сервера принимается без перезагрузки страницы. Гуглите.

Так и не понял ,что вы имели ввиду под словом "пилить" =)

(Отредактировано автором: 11 Апреля, 2010 - 22:52:22)

 
 Top
DeepVarvar Супермодератор
Отправлено: 12 Апреля, 2010 - 07:59:59
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Пилить - значит создавать-кодить.. )))))))

Так зачем "пилить" кнопку пересчета я не понимаю... Просто при нажатии кнопки "оформить заказ" выцепляйте все недостающие данные из сессии и суммируйте их... Ну или как подсказали выше, однако не надо забыывать что некоторые особо умные юзеры начитавшись про вирусы отключают жаваскрипт - и плакал ваш АЯКС... Посему при кодинге НЕОБХОДИМО учитывать ОБА варианта обработки данных.
 
 Top
RayOfLight
Отправлено: 12 Апреля, 2010 - 09:19:28
Post Id



Новичок


Покинул форум
Сообщений всего: 47
Дата рег-ции: Дек. 2008  
Откуда: Калининград


Помог: 0 раз(а)




Я решил добавить к каждому текстовому полю onchange="top.location.href='<page>' "
На той странице забью новое количество в сессию, и вернусь назад, таким образом вся стоимость заказа пересчитается.
 
 Top
scray
Отправлено: 12 Апреля, 2010 - 12:25:17
Post Id


Гость


Покинул форум
Сообщений всего: 68
Дата рег-ции: Апр. 2009  


Помог: 0 раз(а)




DeepVarvar, спасибо ,первый раз слышу честное слово =)
 
 Top
JustUserR
Отправлено: 13 Апреля, 2010 - 16:00:45
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




RayOfLight пишет:
Сначала хотел JavaScript'ом, но как с помощью него редактировать данные в сессии, не понимаю
Для этого у вас должна быть статическая HTML-страница и на ней с помощью JS и Iframe/AJAX должна просиходить динамическая отправка и загрузка данных с сервера где лежит PHP-скрипт - то есть захотели изменть данные в сесси и для этого отправили соответстсющий запрос и получили ответ с новым состоянием которые и вывели пользователю


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB