[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Получение данных из формы
Amicable
Допустим есть простая формула, значения которой задаются самим пользователем. Для этого создал три строки ввода
 <form action="action.php" name="stu" method="post">
<input
type="text" name="u" size="50">
<input
name="Submit" type=submit value="Вычислить скорость"><br>
<input
type="text" name="t" size="50">
<input
name="Submit" type=submit value="Вычислить время"><br>
<input
type="text" name="s" size="50">
<input
name="Submit" type=submit value="Вычислить расстояние">
</form>


Как мне теперь в php сценарии сделать, чтоб выводило начальные значения. и потом я мог с ними что-либо сделать. В данном случае при нажатии на кнопку Вычислить скорость, по формуле вычислялась скорость.



Спустя 5 минут, 27 секунд (26.06.2011 - 20:43) DySprozin написал(а):
Amicable
чего-то вопросы пошли из одной серии... мануалы курить кто будет? ):

по вопросу в action.php принимаешь через $_POST свои переменные, например:
<?php
$u = $_POST['u'];
...
...
//объявляем остальные переменные и проводим операции над ними, заносим все в $rez
...
echo $rez; //вывели результат

Спустя 1 минута, 46 секунд (26.06.2011 - 20:45) neadekvat написал(а):
Свернутый текст
Цитата (DySprozin @ 26.06.2011 - 21:43)
чего-то вопросы пошли из одной серии

Один и тот же человек никак не может усвоить мат. часть, ему становится стыдно и он регит новые акки.

Спустя 26 минут, 50 секунд (26.06.2011 - 21:12) Amicable написал(а):
Цитата
Один и тот же человек никак не может усвоить мат. часть, ему становится стыдно и он регит новые акки.


уж не знаю за кого вы меня принимаете

DySprozin, сделал как вы сказали, для одной все понятно

$u = $_POST['u'];
$t = $_POST['t'];
$s = $_POST['s'];
$rez=$s/$t;
echo $rez

а вот как сделать, чтобы в форме при нажатие кнопки вычислялась то что надо. т.е у меня будет три формулы, каждая кнопка будет считать что-то свое?

Спустя 4 часа, 21 минута, 55 секунд (27.06.2011 - 01:34) walerus написал(а):

<?php

if ($_REQUEST['Submit'] == 'Вычислить скорость')
{
// вычисляем Скорость
.....
// выводим результат
exit; // или die(); кому как нравится
}


if ($_REQUEST['Submit'] == 'Вычислить время')
{
// вычисляем время
.....
// выводим результат
exit; // или die(); кому как нравится
}


if ($_REQUEST['Submit'] == 'Вычислить расстояние')
{
// вычисляем расстояние
.....
// выводим результат
exit; // или die(); кому как нравится
}
?>


Примерно так.

Спустя 6 часов, 18 минут, 3 секунды (27.06.2011 - 07:52) XCross написал(а):
Имхо, решение walerus, какое-то быдловское, русские слова в коде :( хоть и допускается, но не нужно.
Amicable, каждой кнопке разные имена давай и проверяй так:

if(isset($_Метод['Имя_кнопки'])){
//Код
}

Спустя 21 минута, 30 секунд (27.06.2011 - 08:14) ИНСИ написал(а):
Amicable изначально уже неверно. Желательно проверять не "value" кнопки, а определять по названию.

<form action="action.php" method="post">
<input
type="text" name="u" size="50">
<input
name="speed" type="submit" value="Вычислить скорость"><br>
<input
type="text" name="t" size="50">
<input
name="time" type="submit" value="Вычислить время"><br>
<input
type="text" name="s" size="50">
<input
name="distance" type="submit" value="Вычислить расстояние">
</form>

if(isset($_POST['speed'])) {
// Вычесляем скорость
} else if(isset($_POST['time'])) {
// Вычесляем время
} else if(isset($_POST['distance'])) {
// Вычесляем дистанцию
}

Спустя 1 минута, 2 секунды (27.06.2011 - 08:15) ИНСИ написал(а):
Цитата
Amicable, каждой кнопке разные имена давай и проверяй так:

+1 smile.gif

Спустя 12 часов, 31 минута, 22 секунды (27.06.2011 - 20:46) bodja написал(а):
<form >
<input type=submit value="Вычислить скорость"><br>
<input type=submit value="Вычислить время"><br>
<input type=submit value="Вычислить расстояние">
</form>
В ИЕ такой номер не пройдет,дофига сабмитов в форме.

Спустя 11 минут, 6 секунд (27.06.2011 - 20:57) Amicable написал(а):
Появляеться ошибка деления на ноль (Warning: Division by zero ), хотя я думаю у меня ошибка в том что я принимаю переменные, и только потом проверяю на отправку форме.

<?php
$u = $_POST['speed'];
$t = $_POST['time'];
$s = $_POST['distance'];

if(isset($_POST['speed'])) {

$u=$s/$t;

echo $u;

} else if(isset($_POST['time'])) {

$t=$s/$u;

echo $t;

} else if(isset($_POST['distance'])) {

$s=$u*$t;

echo $s;

}
?>


bodja, мне пока все равно на браузеры, я еще только учусь.

Спустя 5 минут, 54 секунды (27.06.2011 - 21:03) bodja написал(а):
Цитата
только потом проверяю на отправку форме

Угу.

По простому
<input type="text" name="u" size="50" value="1">

а по ходу проверки нужно делать более детальнее.

Спустя 10 минут, 14 секунд (27.06.2011 - 21:13) Amicable написал(а):
Цитата
а по ходу проверки нужно делать более детальнее.


можешь пояснить?

Спустя 4 минуты, 59 секунд (27.06.2011 - 21:18) bodja написал(а):
isset,int,регулярные выражения и пулемет от хакеров smile.gif

Спустя 5 минут, 22 секунды (27.06.2011 - 21:23) Amicable написал(а):
bodja, я понимаю что краткость сестра таланта, но я чего-то не понял. как после проверки первой строки, присвоить значения, не только первой переменной, но и еще одной, чтобы получить результат?

Спустя 12 минут, 41 секунда (27.06.2011 - 21:36) walerus написал(а):

<?php
header("Content-Type: text/html; charset=utf-8");

if (isset($_REQUEST['operation_speed']) || isset($_REQUEST['operation_time']) || isset($_REQUEST['operation_distance']))
{
$speed = trim ( $_REQUEST['speed'] );
$time = trim ( $_REQUEST['time'] );
$distance = trim ( $_REQUEST['distance'] );

// Если нажали вычислить скорость
if ( isset($_REQUEST['operation_speed']) )
{
if ($distance <= 0 || $time <= 0 )
{
echo "Неправильно заданы условия !";
exit;
}

$result_speed = $distance / $time;
echo 'Скорость ' .$distance. ' / ' .$time. ' = '.$result_speed.'<hr>';
}

// Если нажали вычислить время
if ( isset($_REQUEST['operation_time']) )
{
if ($distance <= 0 || $speed <= 0 )
{
echo "Неправильно заданы условия !";
exit;
}

$result_time = $distance / $speed;
echo 'Время ' .$distance. ' / ' .$speed. ' = '.$result_time.'<hr>';
}

// Если нажали вычислить расстояние
if ( isset($_REQUEST['operation_distance']) )
{
if ($speed <= 0 || $time <= 0 )
{
echo "Неправильно заданы условия !";
exit;
}

$result_distance = $speed * $time;
echo 'Расстояние ' .$speed. ' * ' .$time. ' = '.$result_distance.'<hr>';
}

}

?>
<form method="POST" action="">
<
input type="text" name="speed" size="20"> - Укажите Скорость<br>
<
input type="text" name="time" size="20"> - Укажите Время<br>
<
input type="text" name="distance" size="20"> - Укажите Расстояние<br>
<
hr>
<
input type="submit" value="Вычислить скорость" name="operation_speed" ><br>
<
input type="submit" value="Вычислить время" name="operation_time"><br>
<
input type="submit" value="Вычислить расстояние" name="operation_distance"><br>
<
hr>
<
input type="reset" value="Сброс" name="B2"></p>
</
form>


Что будет не понятно - спрашивай.

Спустя 11 месяцев, 28 дней, 12 часов, 12 минут, 41 секунда (26.06.2012 - 09:49) metriot написал(а):
Добрый день, напишу сюда, что бы не плодить подобных тем. Вопрос в следющем:
Есть форма

<form action="processorder.php" method="post">
<table
border=0>
<tr
bgcolor=#cccccc>
<td
width=150>Item</td>
<td
width=15>Quantity</td>
</tr>
<tr>
<td>
Tires</td>
<td
align=center><input type="text" name="tireqty" size=3 maxlength=3></td>
</tr>
<tr>
<td>
Oil</td>
<td
align=center><input type="text" name="oilqty" size=3 maxlength=3></td>
</tr>
<tr>
<td>
Spark Plugs</td>
<td
align=center><input type="text" name="sparkqty" size=3 maxlength=3></td>
</tr>
<tr>
<td
colspan=2 align=center><input type=submit value="Submit Order"></td>
</tr>
</table>
</form>



Дальше необходимо из этой формы отправить данные и показать пользователю данные заказа, и сумму


<?php
define ("FILTERPRICE",100);
define ("BRAKEPRICE",100);
define ("MOUNTINGPRICE",100);

echo "$tireqty tires<br>";
echo "$oilqty bottles of oil<br>";
echo "$sparkqty spark plugs<br>";
$totalqty=$tireqty+$oilqty+$sparkqty;
$totalamount=$tireqty*TIREPRICE+$oilqty*OILPRICE+$sparkqty*SPARKPRICE;
$totalamount = number_format($totalamount, 2);
echo "<br>\n";
echo "Items ordered: ".$totalqty."<br>\n";
echo "Subtotal: $".$totalamount."<br>\n";
$taxrate =0.10; // местный налог с продаж составляет 10%
$totalamount = $totalamount * (1 + $taxrate);
$totalamount = number_format($totalamount, 2);
echo "Total including tax: $".$totalamount."<br>\n";

?>


К сожалению не могу понять почему у меня не отображаются после вывода echo сами данные, я так понимаю нужно их привязать каким-то образом к форме, а как это сделать я не понимаю пока что. Помогите пожалуйста разобраться.



Спустя 1 час, 19 минут, 53 секунды (26.06.2012 - 11:09) walerus написал(а):

define ( "FILTERPRICE", 100 );
define ( "BRAKEPRICE", 100 );
define ( "MOUNTINGPRICE", 100 );

/* НЕИЗВЕСТНЫЕ ПЕРЕМЕННЫЕ !!!!
TIREPRICE
OILPRICE
SPARKPRICE
*/

// Допустим что они будут такими

define ( "TIREPRICE", 47 );
define ( "OILPRICE", 55 );
define ( "SPARKPRICE", 78 );

$tireqty = trim( $_REQUEST['tireqty'] );
$oilqty = trim( $_REQUEST['oilqty'] );
$sparkqty = trim( $_REQUEST['sparkqty'] );

echo "$tireqty tires<br>";
echo "$oilqty bottles of oil<br>";
echo "$sparkqty spark plugs<br>";
$totalqty = $tireqty + $oilqty + $sparkqty;
$totalamount = $tireqty * TIREPRICE + $oilqty * OILPRICE + $sparkqty * SPARKPRICE;
$totalamount = number_format( $totalamount, 2 );
echo "<br>\n";
echo "Items ordered: " . $totalqty . "<br>\n";
echo "Subtotal: $" . $totalamount . "<br>\n";
$taxrate = 0.10; // местный налог с продаж составляет 10%
$totalamount = $totalamount * ( 1 + $taxrate );
$totalamount = number_format( $totalamount, 2 );
echo "Total including tax: $" . $totalamount . "<br>\n";

Спустя 4 минуты, 23 секунды (26.06.2012 - 11:13) metriot написал(а):
спасибо, будем пробовать

Спустя 2 минуты, 52 секунды (26.06.2012 - 11:16) metriot написал(а):
Цитата (metriot @ 26.06.2012 - 08:13)
спасибо, будем пробовать

P.S.

$tireqty = trim( $_REQUEST['tireqty'] );

в учебнике трима и рекуэста не было, выходит плохой учебник?

Спустя 24 минуты, 42 секунды (26.06.2012 - 11:41) walerus написал(а):
metriot Смотря какой учебник. trim( ); - Удаляет пробелы из начала и конца строки.
$_REQUEST - Ассоциативный массив, содержащий $_GET, $_POST, and $_COOKIE.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.