[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Калькулятор Примитив
Георгий
Пожалуйста, объясните, почему данный код работает:
<html>
<head></head>
<body>

<form
action = "" method = "post">
<input
type = "text" name = "a" />
+
<input type = "text" name = "b" />
<input
type = "submit" name = "result" value = "=" />
</form>

<?php
if (isset($_POST['a']) && isset($_POST['b']))
{
echo $_POST['result'] = $_POST['a'] + $_POST['b'];
}
?>


а этот код не работает (Результат не выводится):
<form action = "" method = "post">
<input
type = "text" name = "x" />
<input
type = "submit" name = "add" value = "+" />
<input
type = "submit" name = "subtract" value = "-" />
<input
type = "submit" name = "multiply" value = "*" />
<input
type = "submit" name = "divide" value = "/" />
<input
type = "text" name = "y" />
</form>


<?php
if (isset($_POST['x']) && isset($_POST['z']))
{
echo $_POST['add'] = $_POST['x'] + $_POST['z'];
echo $_POST['subtract'] = $_POST['x'] - $_POST['z'];
echo $_POST['multiply'] = $_POST['x'] * $_POST['z'];
if ($_POST['z'] != 0)
{
echo $_POST['divide'] = $_POST['x'] / $_POST['z'];
}
else
{
echo $_POST['divide'] = "Деление на ноль запрещено!";
}
}

?>




Спустя 9 минут, 50 секунд (21.06.2012 - 10:40) Placido написал(а):
Потому что в форме нет инпута с name="z". И поэтому условие isset($_POST['z']) никогда не выполнится.

Спустя 37 минут, 7 секунд (21.06.2012 - 11:17) Guest написал(а):
Спасибо за быстрый ответ!
Да, была ужасающая опечатка.
Но тем не менее скрипт работает криво.
Например при вводе данных: 5, 6 выдается:
11-1300.83333333333333

Это, видимо, потому что выполняются все echo (и то, не понятно, почему выводится именно такое!). Как сделать так, чтобы результат выводился в зависимости от нажатой кнопки?

Спустя 7 минут, 51 секунда (21.06.2012 - 11:25) Guest написал(а):
11-1300.83333333333333 - вывод понятен все-таки - это вывод подряд всех echo.
Но повторюсь, какое условие должно быть? isset($_POST['add']) ? и так далее?

Спустя 5 минут, 37 секунд (21.06.2012 - 11:31) Guest написал(а):
Сам спросил, сам ответил:)
Правило номер 1 - используй форум, когда потратил хотя бы на 15 минут больше обычного:
<form action = "" method = "post">
<input
type = "text" name = "x" />
<input
type = "submit" name = "add" value = "+" />
<input
type = "submit" name = "subtract" value = "-" />
<input
type = "submit" name = "multiply" value = "*" />
<input
type = "submit" name = "divide" value = "/" />
<input
type = "text" name = "z" />
</form>


<?php
if (isset($_POST['x']) && isset($_POST['z']))
{
if (isset($_POST['add']))
{
echo $_POST['add'] = $_POST['x'] + $_POST['z'];
}
elseif (isset($_POST['subtract']))
{
echo $_POST['subtract'] = $_POST['x'] - $_POST['z'];
}
elseif (isset($_POST['multiply']))
{
echo $_POST['multiply'] = $_POST['x'] * $_POST['z'];
}
elseif (isset($_POST['divide']))
{
if ($_POST['z'] != 0)
{
echo $_POST['divide'] = $_POST['x'] / $_POST['z'];
}
else
{
echo $_POST['divide'] = "Деление на ноль запрещено!";
}
}
}

?>

Спустя 3 минуты, 10 секунд (21.06.2012 - 11:34) sergeiss написал(а):
После каждого ЭХО ставь хотя бы "новую строку" :) Тогда будет понятнее, что у тебя получается.

echo 'text'.'<br>';

Спустя 2 часа, 55 минут, 42 секунды (21.06.2012 - 14:30) Guest написал(а):
Тут еще есть дилемма. После нажатия кнопочки, циферки должны остаться в инпутах и показываться наравне с результатом.
Это не понимаю вообще как сделать user posted image

Спустя 44 минуты, 13 секунд (21.06.2012 - 15:14) Guest написал(а):
<form action = "" method = "post">
<input
type = "text" name = "x" />
<input
type = "submit" name = "add" value = "+" />
<input
type = "submit" name = "subtract" value = "-" />
<input
type = "submit" name = "multiply" value = "*" />
<input
type = "submit" name = "divide" value = "/" />
<input
type = "text" name = "z" />
</form>

<?php
if (isset($_POST['x']) && isset($_POST['z']))
{
if (isset($_POST['add']))
{
echo $_POST['add'] = $_POST['x'] + $_POST['z'];
}
elseif (isset($_POST['subtract']))
{
echo $_POST['subtract'] = $_POST['x'] - $_POST['z'];
}
elseif (isset($_POST['multiply']))
{
echo $_POST['multiply'] = $_POST['x'] * $_POST['z'];
}
elseif (isset($_POST['divide']))
{
if ($_POST['z'] != 0)
{
echo $_POST['divide'] = $_POST['x'] / $_POST['z'];
}
else
{
echo $_POST['divide'] = "Деление на ноль запрещено!";
}
}
}

?>

Спустя 1 минута, 55 секунд (21.06.2012 - 15:16) Guest написал(а):
if (isset($_POST['a']) && isset($_POST['b']))
{
echo "<form action = \"\" method = \"post\">";
echo "<input type = \"text\" value = \"";
echo $_POST['a'];
echo "\" name = \"a\" />";
echo "+";
echo "<input type = \"text\" value = \"";
echo $_POST['b'];
echo "\" name = \"b\" />";
echo "<input type = \"submit\" name = \"result\" value = \"=\" />";
echo "</form>";
echo $_POST['result'] = $_POST['a'] + $_POST['b'];

}
else
{
echo "<form action = \"\" method = \"post\">";
echo "<input type = \"text\" name = \"a\" />";
echo "+";
echo "<input type = \"text\" name = \"b\" />";
echo "<input type = \"submit\" name = \"result\" value = \"=\" />";
echo "</form>";
}
Быстрый ответ:

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