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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Калькулятор Длина x Высоту = цена за 1дм2

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Подключить форму к php
mirstiker
Отправлено: 09 Апреля, 2015 - 21:33:31
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Апр. 2015  


Помог: 0 раз(а)




Здравствуйте,помогите новичку формулу реализовать оч.надо.Есть только форма на html
Помогите,пожалуйста, с решением.
CODE (html):
скопировать код в буфер обмена
  1. <HTML>
  2.             <head>
  3.              <meta charset="utf-8"/>
  4.                     <title>Калькулятор</title>
  5.                  </head>
  6.             <body>
  7.                         <p>Рассчитать стоимость: </p>
  8.                     <form method="post" action="calcul.php"/>
  9.                          <input type="text" size="15" maxlength="5" placeholder="Ширина (см)"> X <input type="text" size="15" maxlength="5" placeholder="Высота (см)" > = <input type="text" size="4" value="цена" />
  10.                                  <p>
  11.                                  <input type="submit" value="Рассчитать"/>
  12.                                  </p>
  13.                        
  14.                        
  15.                 </body>
  16.         </HTML>

(Отредактировано автором: 09 Апреля, 2015 - 21:35:55)

 
 Top
exlant
Отправлено: 10 Апреля, 2015 - 00:54:26
Post Id



Посетитель


Покинул форум
Сообщений всего: 425
Дата рег-ции: Февр. 2015  


Помог: 14 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.     class sum{
  4.         private $width = 'width';
  5.         private $height = 'height';
  6.         public $error = NULL;
  7.         private $errors = array('not_valid_data'=>'Введены неверные данные!');
  8.         public $sum = NULL;
  9.  
  10.         function __construct(){
  11.             if($_SERVER["REQUEST_METHOD"] == 'POST'){
  12.                 $w = $this->get($this->width);
  13.                 $h = $this->get($this->height);
  14.                 if(!$this->error){
  15.                    $this->sum = $this->summarize($w, $h);
  16.                 }
  17.             }
  18.         }
  19.         private function get($var){
  20.             return ($this->validator($var)) ? $this->validator($var) : FALSE;
  21.         }
  22.         private function validator($var){
  23.             $val = filter_input(INPUT_POST, $var,FILTER_VALIDATE_INT);
  24.             if($val){
  25.                 $len = (int)log10($val)+1;
  26.                 if($len > 0 AND $len <= 5){
  27.                     return $val;
  28.                 }
  29.             }
  30.             $this->error = $this->errors['not_valid_data'];
  31.             return FALSE;
  32.         }
  33.         private function summarize($w,$h){
  34.             return $w*$h;
  35.         }
  36.  
  37.     }
  38.         $sum = new sum();
  39.  
  40.     ?>
  41.    <form method="post" action="">
  42.         <input type="text" name="width" size="15" maxlength="5" placeholder="Ширина (см)" />
  43.         X <input type="text" name="height" size="15" maxlength="5" placeholder="Высота (см)" />
  44.         = <input type="text" size="4" value="<?=($sum->sum) ? $sum->sum : 'Цена'; ?>" />
  45.                                  <p>
  46.         <input type="submit" value="Рассчитать" />
  47.         <?=($sum->error) ? '<br>'.$sum->error : ''; ?>
  48.     </p>
  49.    </form>
  50.  

(Добавление)
можно еще на JS
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. <script type="text/javascript">
  3.     function setEventListener(element,event,hundler){
  4.         try{
  5.             element.addEventListener(event,hundler,false);
  6.         }catch(a){
  7.             element.attachEvent("on"+event,hundler);
  8.         }
  9.     };
  10.     function cansel(e) {                
  11.             try{                                    
  12.                 e.preventDefault();
  13.             }catch(a){
  14.                 e.returnValue = false;
  15.             }
  16.         };
  17.     setEventListener(window,"load",sum);
  18.     function sum(){
  19.         var form = document.forms.form_sum;
  20.         setEventListener(form,"submit",multipl);
  21.        
  22.         function multipl(e){
  23.             var w = parseInt(form.width.value);
  24.             var h = parseInt(form.height.value);
  25.             if(!isNaN(w) & !isNaN(h))
  26.                 form.sum.value = w*h;
  27.             cansel(e);
  28.         }
  29.     }
  30.    </script>
  31.  

CODE (html):
скопировать код в буфер обмена
  1.  
  2. <form name="form_sum" method="post" action="">
  3.         <input type="text" name="width" size="15" maxlength="5" placeholder="Ширина (см)" />
  4.         X <input type="text" name="height" size="15" maxlength="5" placeholder="Высота (см)" />
  5.         = <input type="text" name="sum" size="4" value="Цена" />
  6.                                  <p>
  7.         <input type="submit" value="Рассчитать" />
  8. </p>
  9.    </form>
  10.  

(Отредактировано автором: 10 Апреля, 2015 - 00:58:01)

 
 Top
Alex_dark74
Отправлено: 10 Апреля, 2015 - 10:17:38
Post Id


Частый гость


Покинул форум
Сообщений всего: 210
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




Думаешь для новичка подойдет? Радость
 
 Top
exlant
Отправлено: 10 Апреля, 2015 - 14:46:43
Post Id



Посетитель


Покинул форум
Сообщений всего: 425
Дата рег-ции: Февр. 2015  


Помог: 14 раз(а)




Так я ж в прикол, от нечего делать....

А вообще пусть новички думают, что php - это что то сложное и непостижимое Радость

Конечно ООП подход лучше, но задачу можно решить и в одну строчку

CODE (htmlphp):
скопировать код в буфер обмена
  1. <form name="form_sum" method="post" action="">
  2.         <input type="text" name="width" size="15" maxlength="5" placeholder="Ширина (см)" />
  3.         X <input type="text" name="height" size="15" maxlength="5" placeholder="Высота (см)" />
  4.         = <input type="text" name="sum" size="4"
  5.                 value="<?=(isset($_POST['width']) AND isset($_POST['height']))?(int)$_POST['width']*(int)$_POST['height']:'Цена'?>" />
  6.                                  <p>
  7.         <input type="submit" value="Рассчитать" />
  8. </p>
  9.    </form>
 
 Top
Tyoma5891
Отправлено: 10 Апреля, 2015 - 15:30:15
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 621
Дата рег-ции: Авг. 2013  


Помог: 5 раз(а)




exlant пишет:
Так я ж в прикол, от нечего делать....

А вообще пусть новички думают, что php - это что то сложное и непостижимое Радость


тогда уже можно было и аяксом сделать... Улыбка
 
 Top
exlant
Отправлено: 10 Апреля, 2015 - 17:11:11
Post Id



Посетитель


Покинул форум
Сообщений всего: 425
Дата рег-ции: Февр. 2015  


Помог: 14 раз(а)




Tyoma5891 Задача и так выполнена! ТС испугался сложности, и может быть закинет все это дело с программированием, и больше не будет задавать таких вопросов Подмигивание

(Отредактировано автором: 10 Апреля, 2015 - 17:12:37)

 
 Top
mirstiker
Отправлено: 11 Апреля, 2015 - 00:24:28
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Апр. 2015  


Помог: 0 раз(а)




exlant пишет:
Так я ж в прикол, от нечего делать....

А вообще пусть новички думают, что php - это что то сложное и непостижимое Радость

Конечно ООП подход лучше, но задачу можно решить и в одну строчку

CODE (htmlphp):
скопировать код в буфер обмена
  1. <form name="form_sum" method="post" action="">
  2.         <input type="text" name="width" size="15" maxlength="5" placeholder="Ширина (см)" />
  3.         X <input type="text" name="height" size="15" maxlength="5" placeholder="Высота (см)" />
  4.         = <input type="text" name="sum" size="4"
  5.                 value="<?=(isset($_POST['width']) AND isset($_POST['height']))?(int)$_POST['width']*(int)$_POST['height']:'Цена'?>" />
  6.                                  <p>
  7.         <input type="submit" value="Рассчитать" />
  8. </p>
  9.    </form>


Спасибо за решение оно на мой взгляд предпочтительней,подскажите как увеличивать наценку или уменьшать стоимость исходя общей площади?
 
 Top
exlant
Отправлено: 11 Апреля, 2015 - 00:38:53
Post Id



Посетитель


Покинул форум
Сообщений всего: 425
Дата рег-ции: Февр. 2015  


Помог: 14 раз(а)




вот к этому
PHP:
скопировать код в буфер обмена
  1.  
  2. (int)$_POST['width']*(int)$_POST['height']
  3.  

добавить * - умножить, / - разделить, +, - и нужное число
например
PHP:
скопировать код в буфер обмена
  1. (int)$_POST['width']*(int)$_POST['height']*0.1

или
PHP:
скопировать код в буфер обмена
  1. (int)$_POST['width']*(int)$_POST['height']/10
 
 Top
mirstiker
Отправлено: 11 Апреля, 2015 - 00:49:52
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Апр. 2015  


Помог: 0 раз(а)




exlant пишет:
вот к этому
PHP:
скопировать код в буфер обмена
  1.  
  2. (int)$_POST['width']*(int)$_POST['height']
  3.  

добавить * - умножить, / - разделить, +, - и нужное число
например
PHP:
скопировать код в буфер обмена
  1. (int)$_POST['width']*(int)$_POST['height']*0.1

или
PHP:
скопировать код в буфер обмена
  1. (int)$_POST['width']*(int)$_POST['height']/10


Спасибо за помощь! напишите,пожалуйста,условие чтобы после расчета размеры не сбрасывались в форме.
 
 Top
exlant
Отправлено: 11 Апреля, 2015 - 01:19:14
Post Id



Посетитель


Покинул форум
Сообщений всего: 425
Дата рег-ции: Февр. 2015  


Помог: 14 раз(а)




вот это в самое начало скрипта, до вывода любого html кода
PHP:
скопировать код в буфер обмена
  1.  
  2. if(isset($_POST['width']) AND isset($_POST['height'])){
  3.           $_SESSION['multiple'] = (int)$_POST['width']*(int)$_POST['height'];
  4.        }
  5.  

вот так будет выглядеть форма
CODE (htmlphp):
скопировать код в буфер обмена
  1. <form name="form_sum" method="post" action="">
  2.         <input type="text" name="width" size="15" maxlength="5" placeholder="Ширина (см)" />
  3.         X <input type="text" name="height" size="15" maxlength="5" placeholder="Высота (см)" />
  4.         = <input type="text" name="sum" size="4"
  5.                 value="<?=($_SESSION['multiple'])?$_SESSION['multiple']:'Цена'?>" />
  6.                                  <p>
  7.         <input type="submit" value="Рассчитать" />
  8. </p>
  9.    </form>

(Добавление)
тю, не верно с начало вопрос прочитал! Спать пора))
Вот так вот:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <form name="form_sum" method="post" action="">
  2.     <input type="text" name="width" size="15" maxlength="5" placeholder="Ширина (см)"
  3.           value="<?=(isset($_POST['width']))?$_POST['width']:'' ?>" />
  4.         X <input type="text" name="height" size="15" maxlength="5" placeholder="Высота (см)"
  5.           value="<?=(isset($_POST['height']))?$_POST['height']:'' ?>" />
  6.         = <input type="text" name="sum" size="4"
  7.                 value="<?=(isset($_POST['width']) AND isset($_POST['height']))?(int)$_POST['width']*(int)$_POST['height']:'Цена'?>" />
  8.                                  <p>
  9.         <input type="submit" value="Рассчитать" />
  10. </p>
  11.    </form>

и без первого php кода, он не нужен!

(Отредактировано автором: 11 Апреля, 2015 - 01:26:18)

 
 Top
mirstiker
Отправлено: 11 Апреля, 2015 - 01:31:18
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Апр. 2015  


Помог: 0 раз(а)




exlant пишет:
вот это в самое начало скрипта, до вывода любого html кода
PHP:
скопировать код в буфер обмена
  1.  
  2. if(isset($_POST['width']) AND isset($_POST['height'])){
  3.           $_SESSION['multiple'] = (int)$_POST['width']*(int)$_POST['height'];
  4.        }
  5.  

вот так будет выглядеть форма
CODE (htmlphp):
скопировать код в буфер обмена
  1. <form name="form_sum" method="post" action="">
  2.         <input type="text" name="width" size="15" maxlength="5" placeholder="Ширина (см)" />
  3.         X <input type="text" name="height" size="15" maxlength="5" placeholder="Высота (см)" />
  4.         = <input type="text" name="sum" size="4"
  5.                 value="<?=($_SESSION['multiple'])?$_SESSION['multiple']:'Цена'?>" />
  6.                                  <p>
  7.         <input type="submit" value="Рассчитать" />
  8. </p>
  9.    </form>

(Добавление)
тю, не верно с начало вопрос прочитал! Спать пора))
Вот так вот:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <form name="form_sum" method="post" action="">
  2.     <input type="text" name="width" size="15" maxlength="5" placeholder="Ширина (см)"
  3.           value="<?=(isset($_POST['width']))?$_POST['width']:'' ?>" />
  4.         X <input type="text" name="height" size="15" maxlength="5" placeholder="Высота (см)"
  5.           value="<?=(isset($_POST['height']))?$_POST['height']:'' ?>" />
  6.         = <input type="text" name="sum" size="4"
  7.                 value="<?=(isset($_POST['width']) AND isset($_POST['height']))?(int)$_POST['width']*(int)$_POST['height']:'Цена'?>" />
  8.                                  <p>
  9.         <input type="submit" value="Рассчитать" />
  10. </p>
  11.    </form>

и без первого php кода, он не нужен!

Жаль,что спасибо не поставить,сообщений не хватает,тогда напишу СПАСИБО exlant!
 
 Top
mirstiker
Отправлено: 29 Июля, 2015 - 14:54:12
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Апр. 2015  


Помог: 0 раз(а)




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

При вводе размеров Д X Ш = ЦЕНА. До 0.5 кв.м стоимость отображается еще разумная,хочется уменьшать числовой коэффициент когда общая площадь превышает 0.5 квм,предполагаю,что необходимо новое условие написать.

Использую этот вариант:
Спойлер (Отобразить)

(Отредактировано автором: 29 Июля, 2015 - 14:55:28)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB