У меня есть форма, где электронная почта не является обязательной. Чтобы проверить, что есть флажок. Если этот флажок не установлен, текстовое поле электронной почты будет отключено и, следовательно, не опубликовано в submit. Однако на следующей странице, если у меня есть код, как показано ниже, он дает мне ошибку, если текстовое поле электронной почты отключено.
if (isset($_POST['submit'])) { $_SESSION["email"] = $_REQUEST['YourEMail']; .... }
Чтобы обойти эту проблему, я progammatically позволяет отключить текстовое поле электронной почты непосредственно перед отправкой, кроме того, чтобы установить его значение в пустую строку. Код для этого показан ниже.
document.getElementById('YourEMail').disabled = false document.getElementById('YourEMail').value = ''
Тем не менее, остается одна неприятная проблема, которая заключается в том, что, если пользователь вернется к исходной странице, текстовое поле электронной почты включено, так как я включил его проблематично непосредственно перед отправкой формы. Однако я хочу, чтобы в этом случае он был отключен. Как, я могу достичь этого? В качестве альтернативы, как на следующей странице я мог видеть, что окно электронной почты было отключено и поэтому даже не пыталось прочитать $_REQUEST['YourEmail']
?
если поле «#YourEMail» является необязательным, вы можете проверить, существует ли в PHP. Нет необходимости включать / отключать поле с помощью JS.
if (isset($_POST['submit'])) { if (isset($_REQUEST['YourEMail']) && !empty($_REQUEST['YourEMail'])){ $_SESSION["email"] = $_REQUEST['YourEMail']; } }
Вы можете протестировать его так, используя тройной:
(isset($_REQUEST['YourEMail']) && !empty($_REQUEST['YourEMail'])) ? $_SESSION["email"] = $_REQUEST['YourEMail'] : FALSE;
Это установило бы только переменную сеанса, если задана переменная запроса.