Эй, поэтому я делаю быструю PHP-программу, которая позволяет простые математические вычисления. И вместо того, чтобы выход переходил на разные страницы с _POST, я хочу, чтобы все они перешли на одну страницу. Итак, я попытался использовать функцию, которая увидит данные _POST и будет различать входные данные и запускать различные функции на основе ввода.
Любая идея, что я делаю неправильно?
<h1>Add:</h1>
<form action="result.php" method="post">
#1: <input type="text" name="a1"><br>
#2: <input type="text" name="a2"><br>
<input type="hidden" name="action" value="add">
<input type="submit" name="addsubmit">
</form>
<hr />
<h1>Subtract:</h1>
<form action="result.php" method="post">
#1: <input type="text" name="s1"><br>
#2: <input type="text" name="s2"><br>
<input type="hidden" name="action" value="subtract">
<input type="submit" name="subsubmit">
</form>
<hr />
<h1>Multiply:</h1>
<form action="result.php" method="post">
#1: <input type="text" name="m1"><br>
#2: <input type="text" name="m2"><br>
<input type="hidden" name="action" value="multiply">
<input type="submit" name="multisubmit">
</form>
<hr />
<h1>Divide:</h1>
<form action="result.php" method="post">
#1: <input type="text" name="d1"><br>
#2: <input type="text" name="d2"><br>
<input type="hidden" name="action" value="divide">
<input type="submit" name="divsubmit">
</form>
</body>
~~~
<?php
$a1 = $_POST["a1"];
$a2 = $_POST["a2"];
$s1 = $_POST["s1"];
$s2 = $_POST["s2"];
$m1 = $_POST["m1"];
$m2 = $_POST["m2"];
$d1 = $_POST["d1"];
$d2 = $_POST["d2"];
function add($num1, $num2){
echo $num1 + $num2;
}
function subtract($num1, $num2){
echo $num1 - $num2;
}
function multiply($num1, $num2){
echo $num1 * $num2;
}
function divide($num1, $num2){
echo $num1/$num2;
}
function operate(){
switch($_POST['submit']) {
case 'addsubmit':
add($a1, $a2);
break;
case 'subsubmit':
subtract($s1, $s2);
break;
case 'multisubmit':
multiply($m1, $m2);
break;
case 'divsubmit':
divide($d1, $d2);
break;
}
}
?>
<div id="1">
<h1>Addition:</h1>
Your answer is <?php echo operate(); ?><br />
<hr />
</div>
<div id="2">
<h1>Subtraction:</h1>
Your answer is <?php echo operate(); ?><br />
<hr />
</div>
<div id="3">
<h1>Multiplication:</h1>
Your answer is <?php echo operate(); ?><br />
<hr />
</div>
<div id="4">
<h1>Division:</h1>
Your answer is <?php echo operate(); ?><br />
</div>
<button> <a href="/workspaces/testgrounds/addition.php">Back to main page</a></button>
</body>
~~ Edit1:
First Errors || Second Errors -
Что не работает? какие ошибки вы получаете? –
1. Вам нужно фактически вызвать функцию 'operation()' где-то - в настоящее время загрузка файла не будет запускать какой-либо код, просто определите кучу функций. 2. Поскольку в любой момент времени будут установлены только 2 параметра POST, первые 8 строк кода будут генерировать по меньшей мере 6 неопределенных ошибок индекса - вы должны использовать 'isset' для проверки, и вы также можете поместить инициализацию переменной в пределах блок блокировки коммутатора – Steve
Вы включаете $ _POST ['submit'], который не размещен в (нет элемента формы с именем «submit»). – WillardSolutions