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
Форумы портала PHP.SU :: Версия для печати :: Корзина в интернет-магазине
Форумы портала PHP.SU » PHP » Программирование на PHP » Корзина в интернет-магазине

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

1. RayOfLight - 11 Апреля, 2010 - 19:08:14 - перейти к сообщению
В общем, надо реализовать пересчет стоимости заказа при изменении количества. В сессии пользователя храню массив с 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.  
2. scray - 11 Апреля, 2010 - 22:51:37 - перейти к сообщению
Вам подойдет AJAX, позволяет выполнять ассинхронные запросы, то есть ответ от сервера принимается без перезагрузки страницы. Гуглите.

Так и не понял ,что вы имели ввиду под словом "пилить" =)
3. DeepVarvar - 12 Апреля, 2010 - 07:59:59 - перейти к сообщению
Пилить - значит создавать-кодить.. )))))))

Так зачем "пилить" кнопку пересчета я не понимаю... Просто при нажатии кнопки "оформить заказ" выцепляйте все недостающие данные из сессии и суммируйте их... Ну или как подсказали выше, однако не надо забыывать что некоторые особо умные юзеры начитавшись про вирусы отключают жаваскрипт - и плакал ваш АЯКС... Посему при кодинге НЕОБХОДИМО учитывать ОБА варианта обработки данных.
4. RayOfLight - 12 Апреля, 2010 - 09:19:28 - перейти к сообщению
Я решил добавить к каждому текстовому полю onchange="top.location.href='<page>' "
На той странице забью новое количество в сессию, и вернусь назад, таким образом вся стоимость заказа пересчитается.
5. scray - 12 Апреля, 2010 - 12:25:17 - перейти к сообщению
DeepVarvar, спасибо ,первый раз слышу честное слово =)
6. JustUserR - 13 Апреля, 2010 - 16:00:45 - перейти к сообщению
RayOfLight пишет:
Сначала хотел JavaScript'ом, но как с помощью него редактировать данные в сессии, не понимаю
Для этого у вас должна быть статическая HTML-страница и на ней с помощью JS и Iframe/AJAX должна просиходить динамическая отправка и загрузка данных с сервера где лежит PHP-скрипт - то есть захотели изменть данные в сесси и для этого отправили соответстсющий запрос и получили ответ с новым состоянием которые и вывели пользователю

 

Powered by ExBB FM 1.0 RC1