Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проблема с созданием корзины
 
 автор: Nadyusha   (07.10.2007 в 19:15)   письмо автору
 
 

Добрый день!
Была на форуме php с данной проблемой, посоветовали обратиться за помощью Javascript-функции. Пишу форму следующую по смыслу:
человек выбирает себе услуги, которые указаны в текстовых полях и в checkbox-ах, каждая из этих услуг соответствует определенной цене, в середине формы должна выйти общая стоимость выбранных услуг. Так же человек должен заполнить данные некоторых других полей, лишь затем форма идет на обработку delivery.php и на подтверждение этому человеку с возможностью что-либо поправить и сделать последующий заказ.
Помогите реализовать похожее на это:

<HTML><HEAD> 
<TITLE>Please Choose a Service</TITLE> 
<META http-equiv=Content-Type content=text/html;charset=windows-1251> 
</HEAD> 
<BODY style="FONT: 9px A9898 size=2 face=Arial>" leftMargin=0 topMargin=0  
marginheight="0" marginwidth="0"> 


<FORM name=form action=delivery.php method=post> 

<SELECT size=1 name=Service  > 
     <OPTION value=CompletePlus  
        selected>Complete Plus ( KIT, EIN, Registered Agent, S-Election (for  
        corp.))</OPTION>  
        <OPTION value=CompleteService>Complete Service Package  
        (with corporate KIT)</OPTION>  
        <OPTION value="Economy ">Economy (Basic  
        documents only)</OPTION>  
        <OPTION value=SpecialNY>Special offer-NY State  
        Business Corporation-$355</OPTION>  
        <OPTION value=SpecialNJ>Special  
        offer-NJ Business Corporation-$310</OPTION> 
        &nbsp;</SELECT> 
         
<INPUT type=checkbox value=On name=ExpeditedService> <FONT  
      face=Arial size=1>Expedited Service-$25 
<INPUT type=checkbox value=RoutineService name=RoutineService > Routine  
    Service-$0 
     
<div> 
<script language="JavaScript" type="text/javascript"> 
 function get_sum() 
 { 
 switch(document.form.Service.value) { 
 case "CompletePlus": 
    var  Service=300; 
        break; 
    case "CompleteService": 
    var  Service=280; 
        break; 
    case "Economy": 
        var  Service=280 
        break; 
    case "SpecialNY": 
        var  Service=355 
        break; 
    case "SpecialNJ": 
        var  Service=310 
        break; 
        default: 
        var  Service=300 
        break; 
 } 
  if  (document.form.ExpeditedService.checked) { 
  var  ExpeditedService = 25 
  } else { 
  var  ExpeditedService = 0    
  } 

   
  if  (document.form.RoutineService.checked) { 
   var  RoutineService= 0 
   } else { 
var  RoutineService = 0 
    } 

    var  result = Service + ExpeditedService + RoutineService 
     
document.form.result.value=result 
 } 
 </script> 
</div> 
<li onMouseOver="get_sum()" > посчитать </li> 
<INPUT maxLength=30 size=30 name=result value="" ></TD> 
     
</FORM> 
</BODY></HTML>  

   
 
 автор: sim5   (07.10.2007 в 19:28)   письмо автору
 
   для: Nadyusha   (07.10.2007 в 19:15)
 

Вопрос: что вы хотите получить, отправив форму на сервер, текстовые значения элементов, или вам нужна общая сумма, либо то и другое вместе?

   
 
 автор: Nadyusha   (07.10.2007 в 19:38)   письмо автору
 
   для: sim5   (07.10.2007 в 19:28)
 

Нужна общая сумма на этой же странице без перезагрузки, с сохранением данных для подтверждения клиентом, которое будет обрабатываться скриптом php и отправляться клиентом на заказ.

   
 
 автор: sim5   (07.10.2007 в 19:46)   письмо автору
 
   для: Nadyusha   (07.10.2007 в 19:38)
 

Тогда удалите из значений опшенов текстовые значения, а вместо них вставьте стоимость этой услуги, соответсвующую стоимость укажите и в других выбираемых полях. Тогда, в JS функции подсчитывайте в цикле, проверяющем выбранные элементы формы, сумму их значений. Такое сможите сами написать или нет? Кстати не вставляйте JS-скрипт в DIV, и желательно, не указывайте тег <FONT>.

   
 
 автор: Nadyusha   (07.10.2007 в 21:07)   письмо автору
 
   для: sim5   (07.10.2007 в 19:46)
 

По правде говоря у меня мало опыта с JS....
Но вот что получилось:

<script language="JavaScript" type="text/javascript">  
 
 function get_sum()  
 {  
 switch(document.form.Service.value) {  
 case "300":
     var 300;  
        break;  
    case "280":  
     var 280;
        break;  
    case "280":
    var 280;  
        break;  
    case "355":
    var 355;  
        break;  
    case "310":
    var 310;      
        break;  
        default:  
        var  300;  
        break;  
 }  
  if  (document.form.25.checked) {  
  var 25;  
  } else {  
  var 0;     
  }  

    
  if  (document.form.0.checked) {  
   var 0;  
   } else {  
var 0;  
    }  

    var  result = Service + 25 + 0  
      
document.form.result.value=result  
 }  
 </script>  
 

   
 
 автор: coloboc66   (07.10.2007 в 22:11)   письмо автору
 
   для: Nadyusha   (07.10.2007 в 21:07)
 

И что: неужели что-то в этом скрипте работает?! Вы объявляете переменную var 300 !!! Такие переменные нельзя объявлять ни в ява-скрипт, ни (я так думаю) в любом другом языке.

   
 
 автор: sim5   (07.10.2007 в 22:11)   письмо автору
 
   для: Nadyusha   (07.10.2007 в 21:07)
 

У вас значение одного чекбокса равно 0, поэтому он не учитывается при подсчете, остальное можно так:


<script language="JavaScript" type="text/javascript"> 
 function get_sum(f) {
  var m = parseInt(f.service.options[f.service.selectedIndex].value);
  if (f.expeditd.checked) var n = parseInt(f.expeditd.value);
   else var n = 0;
   f.result.value = m + n;
 } 
 </script>

<FORM name="form" action="delivery.php" method="post"> 
<SELECT size="1" name="service" onchange="get_sum(this.form)"> 
 <OPTION value=120>Complete Plus - 120</OPTION>  
 <OPTION value=150>Complete Service - 150</OPTION>  
 <OPTION value=200>Economy - 200</OPTION>  
 <OPTION value=355>Special - 355</OPTION>  
 <OPTION value=310>Special offer - 310</OPTION> 
</SELECT> 
<INPUT type="checkbox" value=25 name="expeditd" onclick="get_sum(this.form)">Expedited Service-$25 
<INPUT type="checkbox" value=0 name="RoutineService">Routine Service-$0
<br> 
<INPUT maxLength=30 size=30 name="result" value="" >
</FORM>

Название полей и их значения просто произвольные, выставите свои.

   
 
 автор: Nadyusha   (07.10.2007 в 22:56)   письмо автору
 
   для: sim5   (07.10.2007 в 22:11)
 

СПАСИБО ОГРОМНОЕ!!!!!!!
Форма работает, теперь я поняла!
Благодарю за помощь, вы меня ТАК выручили!!!

   
 
 автор: EXP   (07.10.2007 в 23:06)   письмо автору
 
   для: sim5   (07.10.2007 в 22:11)
 

там и правда строки
if (document.form.RoutineService.checked) {
var RoutineService= 0
} else {
var RoutineService = 0
}

можно заменить просто

var RoutineService = 0
:)

я так понимаю что для подсчёта суммы обязательно надо вызывать событие как
напаример <li onMouseOver="get_sum()" > наведение курсора мышки на какой-нибудь раздел, или есть способ что-бы цифра сама менялась ?

и как можно вывести цифру не в INPUT , а например просто на странице ?

   
 
 автор: sim5   (07.10.2007 в 23:17)   письмо автору
 
   для: EXP   (07.10.2007 в 23:06)
 

Зачем onMouseOver? Сумма должна подсчитываться после выбора того или иного значения, а это либо нажатие, либо щелчек, либо изменение состояния (у селекта).
Вывести на страницу, а вернее в элемент на странице, все-таки страница форматируется с их помощью, можете через свойство элемента innerHTML, обратившись к элементу по его ID или NAME.

   
 
 автор: Nadyusha   (07.10.2007 в 23:43)   письмо автору
 
   для: sim5   (07.10.2007 в 23:17)
 

Почему-то поле с выводом общей суммы выходит в самом верху страницы, как его поставить например на середину страницы?

   
 
 автор: Nadyusha   (07.10.2007 в 23:49)   письмо автору
 
   для: Nadyusha   (07.10.2007 в 23:43)
 

Прошу прощения, уже исправила....

   
 
 автор: sim5   (08.10.2007 в 13:46)   письмо автору
 
   для: Nadyusha   (07.10.2007 в 23:43)
 

Тогда лучше поступить иначе. Сумму к оплате за выбранные услуги показывать не в форме, а в другом эелементе на странице. Например это будет называться как "Корзина", либо "Выбранные услуги", в общем это уже вы решаете, а элементом отображающим это будет DIV. Вы можете даже показывать это в одной из ячеек таблицы, если страница оформлена с ее помощью. При этом нужно будет внести небольшое дополнение.
1. Елемент result теперь будет иметь тип hidden, и не будет виден на странице, его задача принять сумму за услуги, кторую вы получите на стороне сервера.
2. Добавить элемент для отображения суммы (в примере это DIV cart).
3. В функции дополнить вывод текста плюс суммы в div.
Вот, как пример, это будет выглядеть:


//это добавляем в функцию get_sum(f)
document.getElementById('cart').innerHTML = 'Выбрано услуг на $'+(m + n);

//так должен быть прописан элемент result
<input type="hidden" name="result" value="">

//добавим элемент отображающий сумму выбранных услуг
<div id="cart">Услуги не выбраны</div> 

Элементу cart прописать стиль

<style>
 #cart {
   width: 160px;
   height: 20px;
   border: 1px solid #000;
   position: absolute;
   top: 100px;
   left: 200px;
   font: 12px Verdana, Geneva, Arial, Helvetica, sans-serif;
 }
</style>

Теперь вы можете поместить эту корзину куда угодно, прописав в стиле для DIV нужное его местоположение. Это просто пример, вы можете поступить по другому, просто теперь форма и "корзина" не связаны "жестко" друг с другом, а это даст вам больше сводбоды.

   
 
 автор: Nadyusha   (09.10.2007 в 03:12)   письмо автору
 
   для: sim5   (08.10.2007 в 13:46)
 

Действительно это намного свободнее!

Такой вопрос: могу ли я сделать так, чтобы результат показывался и на этой же странице и на следующей с выбранными позициями для подтверждения?

   
 
 автор: sim5   (09.10.2007 в 07:50)   письмо автору
 
   для: Nadyusha   (09.10.2007 в 03:12)
 

Можно конечно. Для этого данные касающиеся выбранного товара/услуги должны находиться во "временном хранилище", которым зачастую служит сессия.

   
 
 автор: bronenos   (09.10.2007 в 10:20)   письмо автору
 
   для: sim5   (09.10.2007 в 07:50)
 

и куки

   
 
 автор: Nadyusha   (11.10.2007 в 19:54)   письмо автору
 
   для: sim5   (09.10.2007 в 07:50)
 

Можете уточнить что значит "временное хранилище"? Каким образом его надо формировать?

   
 
 автор: sim5   (11.10.2007 в 20:09)   письмо автору
 
   для: Nadyusha   (11.10.2007 в 19:54)
 

Ну где вы должны хранить записи, например сколько сделали заказов и чего. Вы можете использовать для этого базу, файл, куки или сессию. Первое в вашем случае не нужно, второе не удобно, третье может быть отключено у клиента. А вот сессия - это механизм, который вам как раз подойдет. Использовать это просто. Если у вас все обращения построены через индексный файл, то достаточно в нем один раз записать вызов сессиии, если нет, то в каждом скрипте вы должны это делать.


<?
// стартуем сессию
session_start();
// теперь, например, при получениии формы, мы берем заказ
// клиента и помещаем его в сессиюю, пусть это будет просто сумма
$_SESSION["summa"] = $_POST['summa'];
// вам достаточно при формировании любой из страниц получить 
// эту переменную из сессии, и вывести на экран
if ($_SESSION["summa"]) // если создана такая переменная (был заказ)
// то выводим
echo '<div id="cart">'.$_SESSION['summa'].'</div>';  
?>

Вы можете использовать сессию не только для того чтобы выводить эту сумму на страницу, но и, если пользователь выберет еще что-то, то проссумировать ее, добавлять записи вида (категории) услуг и многое другое.

   
 
 автор: Nadyusha   (11.10.2007 в 21:57)   письмо автору
 
   для: sim5   (11.10.2007 в 20:09)
 

Почему-то выдает ошибку:

Not Found
The requested URL /function.session-start was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

   
 
 автор: sim5   (11.10.2007 в 22:02)   письмо автору
 
   для: Nadyusha   (11.10.2007 в 21:57)
 

Вы это проверяете на локальной машине или на реальном хосте? Если на локальном, то включены ли у вас сессии в php.ini? Как у вас происходит запрос к страницам, например, так (url как пример):
index.php?orders // запрос страницы заказов через индекный файл
или
orders.php //прямой вызов скрипта страницы заказов

PS. Вы как вызываете сессию, так:
session-start() ?
если да, то не верно, пишется так session_start() !

   
 
 автор: Nadyusha   (11.10.2007 в 23:00)   письмо автору
 
   для: sim5   (11.10.2007 в 22:02)
 

Сессию вызываю так:

session_start();


Проверяю сразу на реальном хосте. Запрос к странице заказов не сделала... видимо поэтому...

   
 
 автор: sim5   (12.10.2007 в 05:28)   письмо автору
 
   для: Nadyusha   (11.10.2007 в 23:00)
 

Не густо с ответами ). Но если вы правильно пишите функцию, то странный возврат ошибки:
>Not Found
>The requested URL /function.session-start was not found on this server.
Это означает, что не существует функции session-start().
Отрабатывать лучше на локальном, установите себе сервер, Денвера вам вполне достаточно будет. И помните, если вы напрямую обращаетесь к своим скриптам, которые будут работать с сессией, то session_start() должна вызываться во всех этих скриптах, иначе данные сессии будут утеряны.

   
 
 автор: Nadyusha   (13.10.2007 в 07:06)   письмо автору
 
   для: sim5   (12.10.2007 в 05:28)
 

Я конечно жутко извиняюсь, но установив сервер "Денвер", не могу сдвинуться с места.... Помогите пожалуйста разобраться с моей ошибкой. Когда я в скрипте delivery.php прописала

<?

print "<P ALIGN=CENTER><font color=#9900CC size=3 face=Tahoma> Hello! </P><BR>"
print 
"<P ALIGN=CENTER><font color=#9900CC size=3 face=Tahoma> Your order is:  <font color=#ff0000 size=2 face=Tahoma</font>" .$POST_['result']."</P><BR>"
?>

<?
session_start
();
$_SESSION["summa"] = $_POST['summa'];
if (
$_SESSION["summa"]) 
echo 
'<div id="cart">'.$_SESSION['summa'].'</div>';  
?>



На хосте выходит следующее:

 Hello!

Your order is:


Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home2/e4914306/public_html/delivery.php:8) in /home2/e4914306/public_html/delivery.php on line 15

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home2/e4914306/public_html/delivery.php:8) in /home2/e4914306/public_html/delivery.php on line 15


В строке 15, на которую он ругается прописано начало скрипта

session_start();


В самой форме прописала

<?
session_start
();
$_SESSION["summa"] = $_POST['summa'];
if (
$_SESSION["summa"]) 
echo 
'<div id="cart">'.$_SESSION['summa'].'</div>';  
?> 


<script language="JavaScript" type="text/javascript">  
 function get_sum(f) { 
  var m = parseInt(f.service.options[f.service.selectedIndex].value); 
  if (f.ExpeditedService.checked) var n = parseInt(f.ExpeditedService.value); 
   else var n = 0; 
  if (f.EIN.checked) var p = parseInt(f.EIN.value);
      else var p = 0;
  if (f.seal.checked) var t = parseInt(f.seal.value);
      else var t = 0;    
 if (f.NY.checked) var r = parseInt(f.NY.value);
     else var r = 0;
 if (f.agent.checked) var k = parseInt(f.agent.value);
     else var k = 0;
 if (f.sert.checked) var w = parseInt(f.sert.value);
     else var w = 0;        
 if (f.sertIncor.checked) var d = parseInt(f.sertIncor.value);
     else var d = 0;            
 if (f.stamp.checked) var h = parseInt(f.stamp.value);
     else var h = 0;         
 if (f.website.checked) var g = parseInt(f.website.value);
     else var g = 0;        
      f.result.value = m + n + p + t + r + k + w + d + h + g; 
 }  
 </script> 

Причем в начале странице стало выходить:

'.$_SESSION['summa'].''; ?>

Может ли в форме быть не стыковка двух скриптов php и JS?

   
 
 автор: bronenos   (13.10.2007 в 10:15)   письмо автору
 
   для: Nadyusha   (13.10.2007 в 07:06)
 

session start первой строчкой

   
 
 автор: sim5   (13.10.2007 в 11:29)   письмо автору
 
   для: Nadyusha   (13.10.2007 в 07:06)
 

bronenos - ну че так скупо?))

Nadyusha - session_start() не обязательно первой строкой в скрипте должно быть прописано, главное чтобы до этой записи не было никакого вывода, например, echo, print, лементов HTML и прочее. И кроме того, даже пустых строк в коде, а так же пустых строк, пробелов перед <?php.

$_SESSION['summa'] выводится на старнице потому, что у вас сессия не рабоатет (вы ее стартуете не правильно, см. выше), нет такой переменной $_SESSION['summa'], вот вы и получаете это на странице. При правильном старте сессии, вы сможете увидеть ее запись в папке установленного Денвера. Они хранятся в папке tmp под такими именами, например, sess_1baff5e9f299f318eac761ca84ea8390. Это обычный текст и вы можете посмотреть его Блокнотом, возможно это вам потребуется когда либо.

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

   
 
 автор: bronenos   (13.10.2007 в 12:17)   письмо автору
 
   для: sim5   (13.10.2007 в 11:29)
 

я сидел с телефона и просто вот так высказал
а что, скажете, неправильно? )

   
 
 автор: sim5   (13.10.2007 в 12:22)   письмо автору
 
   для: bronenos   (13.10.2007 в 12:17)
 

Почему, просто ляпсусов с передачей заголовков гораздо больше, и связаны они скорее не с тем, что первой строкой не прописаны.)

   
 
 автор: Nadyusha   (13.10.2007 в 19:00)   письмо автору
 
   для: sim5   (13.10.2007 в 11:29)
 

Спасибо за четкие советы!

Голова уже кругом идет... сейчас ругается :
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /home2/e4914306/public_html/delivery.php on line 18
где в строке 18 стоит

print "<P ALIGN=CENTER><font color=#9900CC size=3 face=Tahoma> Hello! </P><BR>";

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

   
 
 автор: sim5   (13.10.2007 в 19:26)   письмо автору
 
   для: Nadyusha   (13.10.2007 в 19:00)
 

Да нет, причина не в сессии, где то до этой строки вы допустили ошибку. Проверьте все внимательно. А эту строку в чистом виде РНР выведет без проблем.

PS. У вас в этой строке не закрыт тег FONT. Да и вообще, ну их к ляху на страницах, лучше тегу P указать необходимый стиль в CSS.

   
 
 автор: Nadyusha   (14.10.2007 в 07:09)   письмо автору
 
   для: sim5   (13.10.2007 в 19:26)
 

Спасибо.
Такой вопрос: что может означать ошибка

Parse error: syntax error, unexpected T_VARIABLE in /home2/e4914306/public_html/delivery.php on line 10

в 10 строке:

$session["summa"] = $POST_['summa'];

Чтобы я не делала, не меняла, ошибка не исправляется...

И еще один вопрос: когда прописываю этот же скрипт в форме, появляется сверху на странице скрипт в таком виде: '.$session['summa'].''; ?>, почему, тоже не могу понять где искать ошибку....

PS. Я еще не научилась работать с CSS, и не умею пока создавать циклы, к сожалению, хотя знаю, что намного облегчает работу.... научусь обязательно, не все сразу.

   
 
 автор: sim5   (14.10.2007 в 08:18)   письмо автору
 
   для: Nadyusha   (14.10.2007 в 07:09)
 

Это сообщение говорит: "Синтаксическая ошибка, неизвестная переменная в строке 10 файла delivery.php." Скорее это потому, что вы просто копируете себе в код то, что я вам пишу как пример.:) У вас ведь элементом в форме, который хранит сумму выбранных услуг, является:

<input type="hidden" name="result" value="">

Значит вы должны в скрипте, который принимает данные из формы записать:

<?php
session_start
(); //помните о недопустимом выводе в браузер
if (isset($_POST['result'])) $_SESSION["summa"] = $_POST['result'];
?>

А мой пример $_POST['summa'] удалите. Теперь у вас в сессии будет находится сумма за выбранные услуги - $_SESSION["summa"], и вы можете вывести это значение на любой странице. Но перед выводом проверяйте, существует ли эта переменная:

<?php
session_start
();
if (isset(
$_SESSION["summa"])) //ваши действия
?>

Теперь о $session["summa"] - найдите в файле Servers\usr\local\php5\php.ini строчку register_globals, проверьте, если она равна on или 1, то поставьте ей значение off или 0. Сохраните файл и если у вас был запущен сервер, то перезапустите его (чтобы изменения вступили в силу).
После этого всегда обращайтесь к сессии, как к элементу суперглобального массива:
$_SESSION["summa"] - как отмечено жирным.
Обратите внимание, у вас еще ошибка в записи - $POST_['summa'], вы должны писать так:
$_POST['summa'] - это тоже элемент суперглобального массива.

>когда прописываю этот же скрипт в форме, появляется сверху на странице скрипт в таком виде: $session['summa']

Про $session['summa'] я уже сказал, а вот что значит прописываю в форме, не понял, зачем? Прикрепите код вашей страницы полностью, чтобы посмотреть.

Функцию подсчета суммы get_sum() перепешите так:

<script>
function get_sum(f) {
var c = 0;
var s = eval(f.service.options[f.service.selectedIndex].value);
for (i=0; i<f.length; i++) {
  if (f.elements[i].type == 'checkbox' && f.elements[i].checked)
     c = c + eval(f.elements[i].value);
   }
  f.result.value = c + s;

</script>

Ну и добавить в каждый чекбокс вызов этой функции onclick="get_sum(this.form)", ну это у вас видимо наверняка сделано. Теперь вы можете в форму еще добавить (при необходимости) чекбоксов, при этом саму функцию редактировать не надо будет.

   
 
 автор: Nadyusha   (14.10.2007 в 20:25)   письмо автору
11.8 Кб
 
   для: sim5   (14.10.2007 в 08:18)
 

Да, я теперь многое поняла и запомню на долго! Хороший урок! Спасибо.
Вроде бы все сделала....

>когда прописываю этот же скрипт в форме, появляется сверху на странице скрипт в таком виде: $session['summa']
Писала потому, что Вы говорили,что надо прописывать в каждом скрипте. Но когда убрала написанное, ошибка пропала.
А функция подсчета суммы get_sum() в таком виде намного меньше места занимает и спокойнее работает! Это и есть цикл?

В файле Servers\usr\local\php\php.ini - register_globals = 0, ничего не меняла.

   
 
 автор: sim5   (14.10.2007 в 20:55)   письмо автору
 
   для: Nadyusha   (14.10.2007 в 20:25)
 

Ну тогда дальнейших успехов!

В каждом скрипте работающем с сессией, надо прописывать session_start(), чтобы продливать открытую сессию, если ваши скрипты вызываются индивидуально. А если вызов страниц идет через индексный файл с параметрами, например: index.php/orders?p=12, то достаточно session_start() прописать один раз, в файле index.php. Вот о чем я говорил. А $session['summa'] - это неверная запись получения переменной из сессии.

Да это и есть цикл (FOR), в нем последовательно перебираются все элементы формы, и если элементом оказывается элемент типа checkbox и он будет отмечен (checked), то его значение суммируется к переменной 'с'. После цикла эта переменная суммируется со значением выбранного опшена элемента SELECT. Вот и все.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования