|
|
|
| Добрый день!
Пишу следующий скрипт:
<?php
function get_sum()
{
$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;
endswitch;
}
if (isset($form['ExpeditedService'])) echo "25";
if (isset($form['RoutineService'])) echo "0";
$result = ($Service + $ExpeditedService + $RoutineService);
echo "$Service + $ExpeditedService + $RoutineService = $result";
}
get_sum();
?>
В середине страницы есть строка Total
Не могу понять как заставить скипт вывести общую сумму в этой строке... Может скрипт не правильно написала... Помогите пожалуйста, буду очень признательна. | |
|
|
|
|
|
|
|
для: Nadyusha
(03.10.2007 в 20:56)
| | я вижу необъявленные переменные
если эти переменные используются вне функции то объявите их глобальными первой строкой
global $a, $b, $c; | |
|
|
|
|
|
|
|
для: bronenos
(03.10.2007 в 21:58)
| | Большое спасибо за совет. Попробовала, все равно нет результата.
Может не правильно сам скрипт не верно написан? | |
|
|
|
|
|
|
|
для: Nadyusha
(03.10.2007 в 22:14)
| | без отступов читать тяжело, но вы начинаете
и заканчиваете
определитесь уж, каким методом
+ покажите то, что получилось | |
|
|
|
|
 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();
?> | |
|
|
|
|
|
|
|
для: Nadyusha
(04.10.2007 в 06:42)
| | 1. это надо писать первой строчкой внутри функции
2. как и после каждой команды надо ставить ; в конце | |
|
|
|
|
|
|
|
для: 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);" | |
|
|
|
|
|
|
|
для: kasmanaft
(05.10.2007 в 06:42)
| | Сделала все как вы сказали, но все равно не считает...
Спасибо за советы. | |
|
|
|
|
|
|
|
для: 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();
|
| |
|
|
|
|
|
|
|
для: EXP
(07.10.2007 в 00:20)
| | Спасибо за ответ.
Сам смысл работы формы таков:
человек выбирает себе услуги, которые указаны в текстовых полях и в checkbox-ах, каждая из этих услуг соответствует определенной цене, в середине формы должна выйти общая стоимость выбранных услуг. Так же человек должен заполнить данные некоторых других полей, лишь затем форма идет на обработку delivery.php и на подтверждение этому человеку с возможностью что-либо поправить и сделать последующий заказ.
Вот. И не считает. Может ошибка в коде, где должна быть общая стоимость? | |
|
|
|
|
|
|
|
для: Nadyusha
(07.10.2007 в 02:28)
| | Да потому что надо после отправки из формы выковыривать переменные из заголовков. У вас что я вижу: switch ($_POST[... Сделайте так $Service = trim($_POST[Service]); switch ($Service) case value1: ... Это надо делать обязательно. И еще обратите внимание на реестр переменных это вам не в ворде писать. | |
|
|
|
|
|
|
|
для: 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>
</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>
|
| |
|
|
|
|
|
|
|
для: EXP
(07.10.2007 в 16:58)
| | Спасибо за совет, пойду на другой форум. | |
|
|
|