Я пытаюсь создать форму, где, если пользователь не вводит информацию в конкретный ввод, а затем при отправке формы, пользователь получает предупреждение только для заполнения этого поля ввода (например, "Пожалуйста, введите имя пользователя").
В настоящее время у меня есть цикл foreach, который проходит через каждое поле ввода формы и назначает переменную с тем же именем, что и поле (т.е. $ name = $ _POST ['name']).
Что бы я реализовал в своем коде, чтобы я мог проверять каждое отдельное поле ввода пустым или нет, и сообщить пользователю об этом, но сохранить код минимальным?
foreach ($_POST as $key => $value) {
$$key = $_POST[$key]; //assigns variable to input.
}
if(!empty($$key)) {
//code if all fields are not empty
}
else {
echo "Please fill in all fields";
}
Хотя я не согласен с тем, как вы это делаете, решением было бы добавить array
ошибок в ваш первый цикл foreach
.
foreach ($_POST as $key => $value) {
${$key} = $_POST[$key];
// If the field is empty, set an error
if( empty($value) ) {
$errors[] = 'Please enter a ' . $key . '.';
}
}
А затем измените нижнюю часть, чтобы проверить array
ошибок. Если он пуст, запустите свой код, чтобы завершить отправку формы. Если нет, проведите через ошибки.
if( empty($errors) ) {
//code if all fields are not empty
}
else {
// Loop through each error found
foreach($errors as $error) {
echo $error;
}
}
$key
? Я имею в виду, вы только хотите вывести значения правильно?