PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Описание: Подключить форму к php
Поиск в теме | Версия для печати
mirstiker
Отправлено: 09 Апреля, 2015 - 21:33:31
Новичок
Покинул форум
Сообщений всего: 32
Дата рег-ции: Апр. 2015
Помог: 0 раз(а)
Здравствуйте,помогите новичку формулу реализовать оч.надо.Есть только форма на html
Помогите,пожалуйста, с решением.
CODE (
html ):
скопировать код в буфер обмена
<HTML >
<head >
<meta charset = "utf-8" / >
<title > Калькулятор</ title >
</ head >
<body >
<p > Рассчитать стоимость: </ p >
<form method = "post" action = "calcul.php" / >
<input type = "text" size = "15" maxlength = "5" placeholder= "Ширина (см)" > X <input type = "text" size = "15" maxlength = "5" placeholder= "Высота (см)" > = <input type = "text" size = "4" value = "цена" / >
<p >
<input type = "submit" value = "Рассчитать" / >
</ p >
</ body >
</ HTML >
(Отредактировано автором: 09 Апреля, 2015 - 21:35:55)
exlant
Отправлено: 10 Апреля, 2015 - 00:54:26
Посетитель
Покинул форум
Сообщений всего: 425
Дата рег-ции: Февр. 2015
Помог: 14 раз(а)
PHP:
скопировать код в буфер обмена
<?PHP
class sum{
private $width = 'width' ;
private $height = 'height' ;
public $error = NULL ;
private $errors = array ( 'not_valid_data' => 'Введены неверные данные!' ) ; public $sum = NULL ;
function __construct( ) {
if ( $_SERVER [ "REQUEST_METHOD" ] == 'POST' ) {
$w = $this -> get ( $this -> width ) ;
$h = $this -> get ( $this -> height ) ;
if ( ! $this -> error ) {
$this -> sum = $this -> summarize ( $w , $h ) ;
}
}
}
private function get( $var ) {
return ( $this -> validator ( $var ) ) ? $this -> validator ( $var ) : FALSE ;
}
private function validator( $var ) {
if ( $val ) {
$len = ( int
) log10 ( $val ) + 1 ; if ( $len > 0 AND $len <= 5) {
return $val ;
}
}
$this -> error = $this -> errors [ 'not_valid_data' ] ;
return FALSE ;
}
private function summarize( $w , $h ) {
return $w * $h ;
}
}
$sum = new sum( ) ;
?>
<form method="post" action="">
<input type="text" name="width" size="15" maxlength="5" placeholder="Ширина (см)" />
X <input type="text" name="height" size="15" maxlength="5" placeholder="Высота (см)" />
= <input type="text" size="4" value="<?= ( $sum -> sum ) ? $sum -> sum : 'Цена' ; ?> " />
<p>
<input type="submit" value="Рассчитать" />
<?= ( $sum -> error ) ? '<br>' . $sum -> error : '' ; ?>
</p>
</form>
(Добавление)
можно еще на JS
CODE (
javascript ):
скопировать код в буфер обмена
<script type = "text/javascript" >
function setEventListener( element, event, hundler) {
try {
element.addEventListener ( event, hundler, false ) ;
} catch ( a) {
element.attachEvent ( "on" + event, hundler) ;
}
} ;
function cansel( e) {
try {
e.preventDefault ( ) ;
} catch ( a) {
e.returnValue = false ;
}
} ;
setEventListener( window, "load" , sum) ;
function sum( ) {
var form = document.forms .form_sum ;
setEventListener( form, "submit" , multipl) ;
function multipl( e) {
var w = parseInt( form.width .value ) ;
var h = parseInt( form.height .value ) ;
if ( ! isNaN( w) & ! isNaN( h) )
form.sum .value = w* h;
cansel( e) ;
}
}
</script>
CODE (
html ):
скопировать код в буфер обмена
<form name = "form_sum" method = "post" action = "" >
<input type = "text" name = "width" size = "15" maxlength = "5" placeholder= "Ширина (см)" / >
X <input type = "text" name = "height" size = "15" maxlength = "5" placeholder= "Высота (см)" / >
= <input type = "text" name = "sum" size = "4" value = "Цена" / >
<p >
<input type = "submit" value = "Рассчитать" / >
</ p >
</ form >
(Отредактировано автором: 10 Апреля, 2015 - 00:58:01)
exlant
Отправлено: 10 Апреля, 2015 - 14:46:43
Посетитель
Покинул форум
Сообщений всего: 425
Дата рег-ции: Февр. 2015
Помог: 14 раз(а)
Так я ж в прикол, от нечего делать....
А вообще пусть новички думают, что php - это что то сложное и непостижимое
Конечно ООП подход лучше, но задачу можно решить и в одну строчку
CODE (
htmlphp ):
скопировать код в буфер обмена
< form name= "form_sum" method= "post" action= "" >
< input type= "text" name= "width" size= "15" maxlength= "5" placeholder= "Ширина (см)" />
X < input type= "text" name= "height" size= "15" maxlength= "5" placeholder= "Высота (см)" />
= < input type= "text" name= "sum" size= "4"
value= "<?=(isset($_POST ['width']) AND isset($_POST ['height']))?(int)$_POST ['width']*(int)$_POST ['height']:'Цена'?> " />
< p>
< input type= "submit" value= "Рассчитать" />
</ p>
</ form>
Tyoma5891
Отправлено: 10 Апреля, 2015 - 15:30:15
Частый посетитель
Покинул форум
Сообщений всего: 621
Дата рег-ции: Авг. 2013
Помог: 5 раз(а)
exlant пишет: Так я ж в прикол, от нечего делать....
А вообще пусть новички думают, что php - это что то сложное и непостижимое
тогда уже можно было и аяксом сделать...
mirstiker
Отправлено: 11 Апреля, 2015 - 00:24:28
Новичок
Покинул форум
Сообщений всего: 32
Дата рег-ции: Апр. 2015
Помог: 0 раз(а)
exlant пишет: Так я ж в прикол, от нечего делать....
А вообще пусть новички думают, что php - это что то сложное и непостижимое
Конечно ООП подход лучше, но задачу можно решить и в одну строчку
CODE (
htmlphp ):
скопировать код в буфер обмена
< form name= "form_sum" method= "post" action= "" >
< input type= "text" name= "width" size= "15" maxlength= "5" placeholder= "Ширина (см)" />
X < input type= "text" name= "height" size= "15" maxlength= "5" placeholder= "Высота (см)" />
= < input type= "text" name= "sum" size= "4"
value= "<?=(isset($_POST ['width']) AND isset($_POST ['height']))?(int)$_POST ['width']*(int)$_POST ['height']:'Цена'?> " />
< p>
< input type= "submit" value= "Рассчитать" />
</ p>
</ form>
Спасибо за решение оно на мой взгляд предпочтительней,подскажите как увеличивать наценку или уменьшать стоимость исходя общей площади?
mirstiker
Отправлено: 11 Апреля, 2015 - 00:49:52
Новичок
Покинул форум
Сообщений всего: 32
Дата рег-ции: Апр. 2015
Помог: 0 раз(а)
exlant пишет:
добавить * - умножить, / - разделить, +, - и нужное число
например
или
Спасибо за помощь! напишите,пожалуйста,условие чтобы после расчета размеры не сбрасывались в форме.
exlant
Отправлено: 11 Апреля, 2015 - 01:19:14
Посетитель
Покинул форум
Сообщений всего: 425
Дата рег-ции: Февр. 2015
Помог: 14 раз(а)
вот это в самое начало скрипта, до вывода любого html кода
вот так будет выглядеть форма
CODE (
htmlphp ):
скопировать код в буфер обмена
< form name= "form_sum" method= "post" action= "" >
< input type= "text" name= "width" size= "15" maxlength= "5" placeholder= "Ширина (см)" />
X < input type= "text" name= "height" size= "15" maxlength= "5" placeholder= "Высота (см)" />
= < input type= "text" name= "sum" size= "4"
value= "<?=($_SESSION ['multiple'])?$_SESSION ['multiple']:'Цена'?> " />
< p>
< input type= "submit" value= "Рассчитать" />
</ p>
</ form>
(Добавление)
тю, не верно с начало вопрос прочитал! Спать пора))
Вот так вот:
CODE (
htmlphp ):
скопировать код в буфер обмена
< form name= "form_sum" method= "post" action= "" >
< input type= "text" name= "width" size= "15" maxlength= "5" placeholder= "Ширина (см)"
value= "<?=(isset($_POST ['width']))?$_POST ['width']:'' ?> " />
X < input type= "text" name= "height" size= "15" maxlength= "5" placeholder= "Высота (см)"
value= "<?=(isset($_POST ['height']))?$_POST ['height']:'' ?> " />
= < input type= "text" name= "sum" size= "4"
value= "<?=(isset($_POST ['width']) AND isset($_POST ['height']))?(int)$_POST ['width']*(int)$_POST ['height']:'Цена'?> " />
< p>
< input type= "submit" value= "Рассчитать" />
</ p>
</ form>
и без первого php кода, он не нужен!(Отредактировано автором: 11 Апреля, 2015 - 01:26:18)
mirstiker
Отправлено: 11 Апреля, 2015 - 01:31:18
Новичок
Покинул форум
Сообщений всего: 32
Дата рег-ции: Апр. 2015
Помог: 0 раз(а)
exlant пишет: вот это в самое начало скрипта, до вывода любого html кода
вот так будет выглядеть форма
CODE (
htmlphp ):
скопировать код в буфер обмена
< form name= "form_sum" method= "post" action= "" >
< input type= "text" name= "width" size= "15" maxlength= "5" placeholder= "Ширина (см)" />
X < input type= "text" name= "height" size= "15" maxlength= "5" placeholder= "Высота (см)" />
= < input type= "text" name= "sum" size= "4"
value= "<?=($_SESSION ['multiple'])?$_SESSION ['multiple']:'Цена'?> " />
< p>
< input type= "submit" value= "Рассчитать" />
</ p>
</ form>
(Добавление)
тю, не верно с начало вопрос прочитал! Спать пора))
Вот так вот:
CODE (
htmlphp ):
скопировать код в буфер обмена
< form name= "form_sum" method= "post" action= "" >
< input type= "text" name= "width" size= "15" maxlength= "5" placeholder= "Ширина (см)"
value= "<?=(isset($_POST ['width']))?$_POST ['width']:'' ?> " />
X < input type= "text" name= "height" size= "15" maxlength= "5" placeholder= "Высота (см)"
value= "<?=(isset($_POST ['height']))?$_POST ['height']:'' ?> " />
= < input type= "text" name= "sum" size= "4"
value= "<?=(isset($_POST ['width']) AND isset($_POST ['height']))?(int)$_POST ['width']*(int)$_POST ['height']:'Цена'?> " />
< p>
< input type= "submit" value= "Рассчитать" />
</ p>
</ form>
и без первого php кода, он не нужен!
Жаль,что спасибо не поставить,сообщений не хватает,тогда напишу СПАСИБО exlant!
mirstiker
Отправлено: 29 Июля, 2015 - 14:54:12
Новичок
Покинул форум
Сообщений всего: 32
Дата рег-ции: Апр. 2015
Помог: 0 раз(а)
Уважаемые программисты помогите новичку,данным скриптом доволен,но возникла необходимость его немного изменить.
При вводе размеров Д X Ш = ЦЕНА. До 0.5 кв.м стоимость отображается еще разумная,хочется уменьшать числовой коэффициент когда общая площадь превышает 0.5 квм,предполагаю,что необходимо новое условие написать.
Использую этот вариант:
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
< form name= "form_sum" method= "post" action= "" >< p>< b> Рссчитать стоимость Пвх таблички ( 3 мм) :</ b> </ p> < input type= "text" name= "width" size= "15" maxlength= "5" placeholder= "Ширина (см)" /> X < input type= "text" name= "height" size= "15" maxlength= "5" placeholder= "Высота (см)" /> = < input type= "text" name= "sum" size= "4" value= "Цена" /> < p> < input type= "submit" value= "Рассчитать" /> </ p> </ form>
<script language = "javascript" type= "text/javascript" >
function setEventListener( element, event, hundler) { try{ element. addEventListener( event, hundler, false ) ; } catch( a) { element. attachEvent( "on" + event, hundler) ; } } ; function cansel( e) { try{ e. preventDefault( ) ; } catch( a) { e. returnValue = false ; } } ; setEventListener( window, "load" , sum) ; function sum( ) { var form = document. forms. form_sum; setEventListener( form, "submit" , multipl) ; function multipl( e) { var w = parseInt( form. width. value) ; var h = parseInt( form. height. value) ; if ( ! isNaN( w) & ! isNaN( h) ) form. sum. value = w* h* 0.5 ; cansel( e) ; } } </script>
(Отредактировано автором: 29 Июля, 2015 - 14:55:28)
Поиск в теме | Версия для печати
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB