Переменная PHP $diskNum назначается в отдельном включаемом файле. Например: $diskNum = 99; в этом нет ничего особенного или уникального.
HTML-файл:
Код: Выделить всё
Обработчик форм PHP:
Код: Выделить всё
echo $diskNum.'---F
';
if (isset($_POST['thedisc'])) { $diskNum = $_POST['thedisc']; }
echo $_POST['thedisc']. '---D
';
echo $diskNum. '--L';
Exit();
Код: Выделить всё
99---F
---D
---L
Код: Выделить всё
echo $diskNum. '--L';Результат, если в форму введено значение (например, 19):
Код: Выделить всё
99---F
19---D
19---L
Я знаю, что могу добавить переменную $diskNum в качестве атрибута значения для ввода формы. И это создает значение по умолчанию для поля (заменяя заполнитель). Обход этой проблемы. Но мне интересно, ПОЧЕМУ это не работает.
Кажется, я не могу понять, почему необходимо жестко запрограммированное значение. Другие поля формы, обрабатываемые аналогичным образом, не требуют заданного значения.
Если я удалю оператор If, то --F и --L будут иметь одно и то же значение. Итак, что-то в операторе If имеет проблему с передачей переменной $diskNum, если она не изменена, но я не могу понять, в чем именно. Я в полном смятении. Я попытался изменить его на оператор !isset, без изменений. Попробовал добавить else {$diskNum = $diskNum;, без изменений.
Даже изменил оператор if на:
Код: Выделить всё
if (isset($_POST['thedisc'])) { $diskNum = ($_POST['thedisc']); } else { $diskNum = 30; }
Также изменение ввода HTML на type="number" не привело к изменению поведения.
Что мне не хватает в этом операторе if?
Подробнее здесь: https://stackoverflow.com/questions/798 ... m-variable
Мобильная версия