Я создаю очень простую форму с выпадающим меню и текстом. Он показывает ошибки, если форма имеет пустое поле во время отправки.Как сохранить выбранное значение выпадающего меню после отправки формы?
Я хочу показать заполненные значения после отправки формы, если есть какая-либо ошибка. Он работает в текстовом поле, как я и ожидал. Ex: Если заполните name
и отправьте форму без заполнения раскрывающегося меню title
, оно отображает имя, которое я напечатал на поданной во время ошибки.
Но как я могу это сделать для выпадающего меню? Ex: Если я выберу выпадающее меню title
и отправьте форму без заполнения поля name
, он должен отобразить выпадающее значение title
во время появления ошибки.
как я могу это сделать? вот мой код, и это WordPress сайт:
<?PHP
$errors = array();
if($_POST["submit"]) {
$name_title = $_POST["name_title"];
$sender = $_POST["sendername"];
//Check the name title that it is selected or none.
if($name_title === none){
//if selected is none, add error to $errors array.
$errors['name_title'] = "Please select the title of your name!";
}
if(empty($sender)){
//Blank string, add error to $errors array.
$errors['sendername'] = "Please enter your name!";
}
// sending form
if(empty($errors)){
$mail_sent = wp_mail($to, $subject, $mailBody, $headers);
}
}
if ($mail_sent) {
?>
<h1 style="color: #007f00;">Request sent.</h1>
<?php
} else {
?>
<form id="" name="" action="<?php echo get_permalink(); ?>" method="post">
<div class="label-input-wrapper">
<div class="form-label">Title</div>
<div class="form-input">
<select name="name_title" class="name-title-input">
<option value="none" selected="selected">Select Title</option>
<option value="Mr">Mr</option>
<option value="Mrs">Mrs</option>
<option value="Miss">Miss</option>
<option value="4">Ms</option>
</select>
<div class="error-msg">
<?php if(isset($errors['name_title'])) { echo '<span style="color: red">'.$errors['name_title'].'</span>'; } ?>
</div>
</div>
</div>
<div class="label-input-wrapper">
<div class="form-label">Name</div>
<div class="form-input">
<input type="text" name="sendername" value="<?PHP if(!empty($errors)) { echo $sender;} ?>" />
<div class="error-msg">
<?php if(isset($errors['sendername'])) { echo '<span style="color: red">'.$errors['sendername'].'</span>'; } ?>
</div>
</div>
</div>
<input type="submit" value="Submit" name="submit">
</form>
<?php
}
?>
Здесь я задаю вопросы, если я не могу архивировать результат, который я ожидаю. Это потому, что может быть моей ограниченной способностью в поданной. Поэтому, когда какой-либо вопрос GENIUS 'DOWN VOTE', пожалуйста, скажите мне, почему, по крайней мере, почему ... –
Прежде чем это произойдет, убедитесь, что вы избегаете переменной $ sender, прежде чем повторять ее обратно в HTML. В противном случае ваш сайт будет уязвим для XSS. Подробнее читайте здесь: https://www.owasp.org/index.php/Cross-site_Scripting_(XSS) P.S. нет, я не тот, кто проголосовал за :) – Qwerty