Я создаю программу, в которой пользователь вводит два числа, и на кнопке отправки он вычислит и отобразит последовательность Фибоначчи. При попытке получить мои входные значения для сохранения в $n1
а также $n2
Я получаю ошибку. Есть ли более эффективный способ получить вклад, делая что-то другое, чем $_POST
?
Это форма:
<div id="container">
<h2>Fibonacci Example</h2>
<p id="display"></p>
<form action="fibonacciDisplay.php" method="post">
<label>First Number:</label> <input type="text" name="n1"><br>
<label>Second Number:</label> <input type="text" name="n2"><br>
<input type="submit" name="calculate" class="btnSubmit">
</form>
</div>
Это моя функция:
//variables
$n1 = $_POST['Num1'];
$n2 = $_POST['Num2'];
//method to check numbers
function checkFibo($n1 = 0, $n2 = 0) {
if ($n1 != 0 && $n2 != 1) {
if ($n2 < $n1) {
echo "Your second number must be greater than the first. Try again";
$output = "";
} else if ($n1 < $n2 || $n2 < 0) {
echo "Please enter only positive numbers";
} else if (!(is_numeric($n1)) || !(is_numeric($n2))) {
echo "Please only enter positive numbers";
$output = "";
} else {
echo "The result of your request is shown below.";
$output = $z->getFibo($n1, $n2);
}
} else {
echo "Please enter values below";
$output = "";
}
return $output;
}
// Method to calculate fibonacci
function getFibo($n1 = 0, $n2 = 0) {
$max = $n2 * 100;
while ($z <= 0) {
$z = $n1 + $n2;
$output .= ($z."<br />");
$n1 = $n2;
$n2 = $z;
}
return $output;
}
Изменить это
<label>First Number:</label> <input type="text" name="n1"><br>
<label>Second Number:</label> <input type="text" name="n2"><br>
к этому:
<label>First Number:</label> <input type="text" name="Num1"><br>
<label>Second Number:</label> <input type="text" name="Num2"><br>
Потому что вы пытаетесь получить поля $n1 = $_POST['Num1'];$n2 = $_POST['Num2'];
в вашем бэкэнд-скрипте.
О втором вопросе вы можете использовать GET
запросы вместо POST
Больше Вот, если вы хотите сделать его более современным, посмотрите на Аякса Запросы.
Ваш PHP-код неверен при получении значений из поста. Num1 и Num2 не существует в вашем HTML код, вы объявили их как n1 и n2. Следовательно, вы должны сделать $ _POST [‘n1’] и $ _POST [‘n2’]
Ваш HTML:
<label>First Number:</label> <input type="text" name="n1"><br>
<label>Second Number:</label> <input type="text" name="n2"><br>
Ваш текущий код PHP:
$n1 = $_POST['Num1'];
$n2 = $_POST['Num2'];
Ваш PHP должен быть:
$n1 = $_POST['n1'];
$n2 = $_POST['n2'];