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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Проблема с созданием корзины

Сообщения:  [1-10]   [11-13] 

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

Спасибо за совет, пойду на другой форум.

   
 
 автор: EXP   (07.10.2007 в 16:58)   письмо автору
 
   для: Nadyusha   (06.10.2007 в 22:51)
 

Вам нужна Javascript-функция ,
До отправки данных формы, php их никак не обработает,
спросите здесь на форуме HTML+CSS+JavaScript как реализовать похожее на это


<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>

   
 
 автор: Klyuchnikov   (07.10.2007 в 03:01)   письмо автору
 
   для: Nadyusha   (07.10.2007 в 02:28)
 

Да потому что надо после отправки из формы выковыривать переменные из заголовков. У вас что я вижу: switch ($_POST[... Сделайте так $Service = trim($_POST[Service]); switch ($Service) case value1: ... Это надо делать обязательно. И еще обратите внимание на реестр переменных это вам не в ворде писать.

   
 
 автор: Nadyusha   (07.10.2007 в 02:28)   письмо автору
 
   для: EXP   (07.10.2007 в 00:20)
 

Спасибо за ответ.

Сам смысл работы формы таков:
человек выбирает себе услуги, которые указаны в текстовых полях и в checkbox-ах, каждая из этих услуг соответствует определенной цене, в середине формы должна выйти общая стоимость выбранных услуг. Так же человек должен заполнить данные некоторых других полей, лишь затем форма идет на обработку delivery.php и на подтверждение этому человеку с возможностью что-либо поправить и сделать последующий заказ.
Вот. И не считает. Может ошибка в коде, где должна быть общая стоимость?

   
 
 автор: EXP   (07.10.2007 в 00:20)   письмо автору
 
   для: Nadyusha   (06.10.2007 в 22:51)
 

Насколько можно понять Этот файл и является частью скрипта delivery.php ,
т.е. обраьатывает данные из формы ,которая в нём.
$Service = "300"; в начале функции исключает смысл использования в ней switch()?
и вычисления дальше получается как-бы дописаны в конец цифры.
можно понять нужное поведение этой функции так ?



напутал :) оказывается нужно switch

исправил

<?php
          
function get_sum()
         { 
    
$Service "300";

swith     ($_POST['Service']){
    case 
"CompletePlus":
    echo 
"300";
        break;
    case 
"CompleteService":
    echo 
"280";
        break;
    case 
"Economy":
        echo 
"280";
        break;
    case 
"SpecialNY":
        echo 
"355";
        break;
    case 
"SpecialNJ":
        echo 
"310";
        break;
        }

if (isset(
$_POST['ExpeditedService'])) echo $ExpeditedService "25";
if (isset(
$_POST['RoutineService'])) echo $RoutineService "0";
$result = ($Service $ExpeditedService $RoutineService);
    echo 
$result;
}
 
get_sum();

   
 
 автор: Nadyusha   (06.10.2007 в 22:51)   письмо автору
 
   для: kasmanaft   (05.10.2007 в 06:42)
 

Сделала все как вы сказали, но все равно не считает...
Спасибо за советы.

   
 
 автор: kasmanaft   (05.10.2007 в 06:42)   письмо автору
 
   для: bronenos   (04.10.2007 в 07:50)
 

> 2. как и после каждой команды надо ставить ; в конце
Но если это case от switch (а не swith!! =] ), то не нужно..

Nadyusha, у Вас, наверное, отключен вывод ошибок, поэтому и возникают такие проблемы. Запустил прикрепленный скрипт, мне сказали "Parse error: syntax error, unexpected '{' in C:\webserver\htdocs\test\index.php on line 474"
Поищите у себя в php.ini директиву "display_errors", сделайте ее "On" и перегрузите сервер.
И для большей уверенности в начале скрипта напишите "error_reporting(E_ALL);"

   
 
 автор: bronenos   (04.10.2007 в 07:50)   письмо автору
 
   для: Nadyusha   (04.10.2007 в 06:42)
 

1. это надо писать первой строчкой внутри функции
2. как и после каждой команды надо ставить ; в конце

   
 
 автор: Nadyusha   (04.10.2007 в 06:42)   письмо автору
32.2 Кб
 
   для: bronenos   (03.10.2007 в 22:40)
 

Вот что получилось:

<?php
function get_sum()
global $Service, $ExpeditedService, $RoutineService

{
$Service = "300";
swith ($Service){
case "CompletePlus":
echo "300";
break;
case "CompleteService":
echo "280";
break;
case "Economy":
echo "280";
break;
case "SpecialNY":
echo "355";
break;
case "SpecialNJ":
echo "310";
break;
}
if (isset($form['ExpeditedService'])) echo "25";
if (isset($form['RoutineService'])) echo "0";
$result = ($Service + $ExpeditedService + $RoutineService);
echo $result;
}
get_sum();

?>

   
 
 автор: bronenos   (03.10.2007 в 22:40)   письмо автору
 
   для: Nadyusha   (03.10.2007 в 22:14)
 

без отступов читать тяжело, но вы начинаете
switch(...){
и заканчиваете
endswitch;
}

определитесь уж, каким методом

+ покажите то, что получилось

   

Сообщения:  [1-10]   [11-13] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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