Добрый день.
Делаю простой калькулятор в форме HTML.
В заключении написания скрипта решил дописать в value переменные с числами, чтобы в полях формы числа оставались и не исчезали. После запуска стала появляться ошибка про инициализацию данных именно в полях value куда заносятся данные из переменных.
Выше я дописал, что рассматривать внесенные в форму данные как float, не помогает. Пробовал ставить int - то же без успеха. Можно конечно написать error_reporting(E_ALL & ~E_NOTICE); и забить, но это не по фэншую. Помогите, пожалуйста, удовлетворить php.
Вот скрипт калькулятора:
Сначала на PHP:
<?php
error_reporting(E_ALL);
# error_reporting(E_ALL & ~E_NOTICE);
ini_set('display_errors', 'on');
setlocale(LC_ALL, 'ru_RU.UTF-8');
#-------------------------------------------------
$operations = ['+', '-', '*', '/'];
If (!empty($_POST['num1']) && !empty($_POST['num2'])) {
if (in_array($_POST['oper'], $operations)) {
$numb1 = (float)$_POST['num1'];
$numb2 = (float)$_POST['num2'];
switch ($_POST['oper']) {
case '+':
$res = $numb1 + $numb2;
break;
case '-':
$res = $numb1 - $numb2;
break;
case '*':
$res = $numb1 * $numb2;
break;
case '/':
$res = $numb1 / $numb2;
break;
default:
echo "НЕДОПУСТИМОЕ ДЕЙСТВИЕ";
}
}else{
$res = "Ошибка операции";
}
}
?>
И ниже форма в HTML:
<form action='calc.php' method="post">
<label>Число 1:</label>
<br />
<input name='num1' type='number' value="<?= (float)$numb1 ?>" />
<br />
<label>Оператор: </label>
<br />
<select name="oper">
<?php foreach ($operations as $oper): ?>
<option value="<?= $oper;?>"><?= $oper;?></option>
<?php endforeach;?>
</select>
<br />
<label>Число 2: </label>
<br />
<input name='num2' type='number' value="<?= (float)$numb2 ?>" />
<br />
<?php if (isset($res)): ?>
<p> Результат: <?= $res?></p>
<?php endif;?>
<br />
<input type='submit' value='Считать'>
</form>