|
|
|
| Вот задача такая блин :(
Есть значит 4 услуги Дизайн-проект Инж. Проект Строительство Отделка
на каждую услугу есть свои цены
так же есть свои скидки!
Просто цены бы я думаю помучался бы сделал но не знаю как быть со скидками!
Помогите сооброзть, до вечера надо сделать, или скажите сколько возмёте за такой кункулятор блин :(
Корчое прайсик вот
Вид услуг Цена за метр2 0-100 100-150 150-300 300-800 800-более
Дизайн-проект---------кнопка------60----------55-----------45----------45-----------40
Инж. Проект------------кнопка------30----------25-----------25----------22----------20
Строительство---------кнопка------650------- 650----------600--------550--------500
Отделка-----------------кнопка------400--------380---------360--------360---------350
Кнопочка подсчитать всё!
Кнопка это типа чет бокс!
Скрин прикрепил в аттач!
Помогите сделать или какой принцип если считать со скидками :( | |
|
|
|
|
|
|
|
для: Panker
(22.06.2006 в 14:40)
| | Ну ты так:
<?
$sum=0;
$metraz=$_POST['metraz'];
$dizain=$_POST['dizain'];
$ingener=$_POST['ingener'];
$stroitelstvo=$_POST['stroitelstvo'];
$otdelka=$_POST['otdelaka'];
$skidaka_na_dizain=0.2; // 20%
$dizain_cena_na_metr=100; // 100 рублей без скидки
if($dizain=="True"){$sum+=$metraz*$dizain_cena_na_metr*(1-$skidaka_na_dizain);}
|
И так со всеми.
В итоге echo $sum; | |
|
|
|
|
|
|
|
для: valenok
(22.06.2006 в 14:47)
| | не много не понел ваш вариант (
Но вот есть мысль, описал как смог, оброзно так как бы!
Подскажите верно иду или нет?
Можно сделать так!
Если Дизайн будет $diz а метраж $m2_diz то при выбори галочки Дизайна
А цены обозночать так
$cena_na_diz_ot_0_do_100metrov="60$";
$cena_na_diz_ot_100_do150metrov="55$";
$cena_na_diz_ot_150_do_300metrov="45$";
$cena_na_diz_ot_300_do800metrov="45$";
$cena_na_diz_ot_800metrov="40$";
Далее
Сравнваем что у нас в текст поле
Если цифра до 100 тоисть
if ( m2_diz == < 100 )
{ $cena == $cena_na_diz_ot_0_do_100metrov };
else { echo " какаета ошибка в этом канкуляторе, держащейся на чесном слове"; }
Длаее мы мебёрм
$cena и умножаем её на $md2_diz
результат пишим в $rezultat
и в конце концов выводим
<? echo " Цена на Дизайн-проект будет равна $rezultat....ваш метраш $md2_diz...цена на квадратный метр была.....$cena"; ?>
|
| |
|
|
|
|
|
|
|
для: Panker
(22.06.2006 в 14:53)
| | Проверяем - пометил ли друг дизайн.
Если да, то прибавляем к конгечной сумме метраж умноженный на цену за метр и вычитаем скидку. | |
|
|
|
|
|
|
|
для: valenok
(22.06.2006 в 15:07)
| | Глупо )) но не напомните умноженяи деления ну и так далее )) а то книги перевернул, не нащёл где там со сложением и вычитанием ) | |
|
|
|
|
|
|
|
для: Panker
(22.06.2006 в 15:15)
| | Я вас не понял. | |
|
|
|
|
|
|
|
для: Panker
(22.06.2006 в 15:15)
| | всё с умножением разобрался )
ща посижу не много свопросами так или иначе приду :) | |
|
|
|
|
|
|
|
для: Panker
(22.06.2006 в 15:18)
| | Умножение: $a * $b ;
Деление: $a / $b ;
Сложение: $a + $b ;
Вычитание: $a - $b ;
Модуль: $a % $b; // Тоесть остаток от деления $a на $b -> 6%4 = 2 | |
|
|
|
|
|
|
|
для: Panker
(22.06.2006 в 15:18)
| | Поэтапно лучше!
Мне надо сравнить метраж!
Если он больше 100 то цена одна если мнеьше то друга!
Как мне это сделат ь:)
Вот я вроде правельно делаю но на дели нет :)
<?
if($metraz < 100)
{ $cena == $cena_na_diz_ot_0_do_100metrov }
echo "$cena"; ?>
|
что не так ? :) | |
|
|
|
|
|
|
|
для: Panker
(22.06.2006 в 15:21)
| | Так.
If ( $metraz < 100 ) { $cena == $cena_na_diz_ot_0_do_100metrov ;}; | |
|
|
|
|
|
|
|
для: valenok
(22.06.2006 в 15:22)
| | Как видишь - у тебя всё правильно, только скобки круглые у if'а и кривые у того что делать..
И ещё я добавил точку с запятой в конце того что в кривых скобках. | |
|
|
|
|
|
|
|
для: valenok
(22.06.2006 в 15:24)
| | Что то я не так навреное ТВОРЮ :)
Parse error: parse error, unexpected T_VARIABLE in z:\home\kankuliator\www\submit.php on line 2
|
код
<? Error_Reporting(E_ALL & ~E_NOTICE)
$cena_na_diz_ot_0_do_100metrov="123";
If ( $metraz < 100 ) { $cena == $cena_na_diz_ot_0_do_100metrov;};
echo "$cena"; ?>
|
| |
|
|
|
|
|
|
|
для: Panker
(22.06.2006 в 15:27)
| | <? Error_Reporting(E_ALL & ~E_NOTICE) ; | |
|
|
|
|
|
|
|
для: valenok
(22.06.2006 в 15:29)
| | Я бы тебе посоветовал пока убрать эту строку Еrror_Reporting(E_ALL & ~E_NOTICE) ;
А потом когда закончишь - добавить.
Так будет проще ошибки отлавливать. | |
|
|
|
|
|
|
|
для: valenok
(22.06.2006 в 15:29)
| | АГА, до смешного доходит ((
Блин нерничаю!
Вот корчое
сейчас я делаю так
<? Error_Reporting(E_ALL & ~E_NOTICE);
$cena_na_diz_ot_0_do_100metrov="60$";
$cena_na_diz_ot_100_do150metrov="55$";
$cena_na_diz_ot_150_do_300metrov="45$";
$cena_na_diz_ot_300_do800metrov="45$";
$cena_na_diz_ot_800metrov="40$";
If ( $metraz > 100 ) { $cena == $cena_na_diz_ot_0_do_100metrov;};
echo "$cena"; ?>
|
надеялся что echo "$cena"; ?> вывидит что то но фиг мне )) | |
|
|
|
|
|
|
|
для: Panker
(22.06.2006 в 15:32)
| | ="45$";
Первращает перемнную в строку
А сделать 22+привет=
Не очень..
$cena_na_diz_ot_800metrov=40;
echo $cena."$"; ?>
... | |
|
|
|
|
|
|
|
для: valenok
(22.06.2006 в 14:47)
| | а вот эту штуку имеет смысл слепить на JS | |
|
|
|
|
|
|
|
для: Trianon
(22.06.2006 в 14:56)
| | Если бы я знал этот JS )))
мне бы как нить сделат ь:) друг попросил до вечера, я с дуру ляпнул ВСЁ БУДИТ ТИП ТОП ))
Сидел думал ))
Система выходит не хуже поисковика :))))))))))))))))))))))) | |
|
|
|
|
|
|
|
для: Panker
(22.06.2006 в 14:40)
| | две связанные таблицы
uslugi (id_usl, naimen_usl)
skidki (id_skidki, interval, price, id_usl)
в interval записываешь только верхние пределы в порядке возрастания
у checkbox ов значения value соответствуют id_usl
$qry=$mysql_query("select price from skidki where id_usl='".$_POST['value_checkbox']."' and '".$_POST['value_text_field']."' >interval");
$itog_price=mysql_fetch_array($qry);
$summa=$_POST['value_text_field']*$itog_price;
|
| |
|
|
|
|
|
|
|
для: kolobokk
(22.06.2006 в 15:33)
| | <ysql не подходит :( | |
|
|
|
|
|
|
|
для: Panker
(22.06.2006 в 15:35)
| |
<html>
<head>
<title></title>
<script>
function calc(x)
{
discount = [100,150,300,800];
price = [[60,55,45,45,40],
[30,25,25,22,20],
[650,650,600,550,500],
[400,380,360,360,350]];
v = x.elements.Sq.value;
for(i = 0; i < discount.length; i++) if(v < discount[i]) break;
for(s = 0, j = 0; j < 4; j++)
if(x.elements[j+1].checked)
s += price[j][i];
x.elements.sum.value = s*v;
}
</script>
</head>
<body>
<form name=fnm>
<br/>Метраж, м<sup>2</sup> <input name='Sq' value=0>
<br/><input type=checkbox name=r value=0> Дизайн-проект
<br/><input type=checkbox name=r value=1> Инж. Проект
<br/><input type=checkbox name=r value=2> Строительство
<br/><input type=checkbox name=r value=3> Отделка
<br/><input type=button value=Calculate onClick="calc(this.form);" >
<input name=sum value=0 >
<form>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: Trianon
(22.06.2006 в 15:37)
| | Или нужен непрерывный нарастающий итог?
Тогда чуть сложнее будет. На строку - две. :) | |
|
|
|
|
|
|
|
для: Trianon
(22.06.2006 в 15:37)
| | отличный вариант :))) | |
|
|
|
|
|
|
|
для: Panker
(22.06.2006 в 15:35)
| | тоже самое можно попробовать организовать и на файлах | |
|
|
|
|
|
|
|
для: kolobokk
(22.06.2006 в 15:33)
| | $qry=$mysql...
Убери знак доллара перед названием функции. Тоесть $qry=mysql_q... | |
|
|
|
|
|
|
|
для: kolobokk
(22.06.2006 в 15:33)
| | Trianon
Блин )) я уже говорил что я буду малится на этот форум ) тотем поставлю и по 2 часа в день стаьбильно ))
Помойму всё отлично )) если что обращусь, но на врятли что то понадобится ) канкулятор шикарный ))) | |
|
|
|
|
|
|
|
для: Panker
(22.06.2006 в 15:59)
| | >Trianon
>Блин )) я уже говорил что я буду малится на этот форум )
>тотем поставлю и по 2 часа в день стаьбильно ))
лоб не разбейте :)
>Помойму всё отлично )) если что обращусь, но на врятли что
>то понадобится ) канкулятор шикарный )))
Всё же нарастающий итог будет правильней.
И с точки зрения заказчика, и с точки зрения бухгалтера.
Иначе на стыках цен получаются рывки стоимости заказа.
Так что вот так:
<html><head> <title></title><script>
function calc(x)
{
discount = [0-100,100-150,150-300,300-800, 800-2000000000];
price = [[60,55,45,45,40],
[30,25,25,22,20],
[650,650,600,550,500],
[400,380,360,360,350]];
v = x.elements.Sq.value;
for(t=p=q=i=0; i < discount.length; i++, v -= q, t += s)
for(q = Math.min(-discount[i],v), s=j= 0; j < 4; j++)
if(x.elements[j+1].checked)
s += price[j][i]*q;
x.elements.sum.value = t;
}
</script>
</head>
<body>
<form name=fnm>
<br/>Метраж, м<sup>2</sup> <input name='Sq' value=0>
<br/><input type=checkbox name=r value=0> Дизайн-проект
<br/><input type=checkbox name=r value=1> Инж. Проект
<br/><input type=checkbox name=r value=2> Строительство
<br/><input type=checkbox name=r value=3> Отделка
<br/><input type=button value=Calculate onClick="calc(this.form);" >
<input name=sum value=0 >
<form></body></html>
|
| |
|
|
|
|
|
|
|
для: Trianon
(22.06.2006 в 16:37)
| | Туго сооброжаю ) Лоб расшиб :)))
Спасибочки большое ))
Всё поставил всё сделал ))) Не упал в глазах друга ))) хех )) | |
|
|
|