Сообщите пользователю, что он пропустил определенное поле ввода в форме

1

Я пытаюсь создать форму, где, если пользователь не вводит информацию в конкретный ввод, а затем при отправке формы, пользователь получает предупреждение только для заполнения этого поля ввода (например, "Пожалуйста, введите имя пользователя").

В настоящее время у меня есть цикл 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";

}
  • 0
    забавно, вы опубликовали это в качестве ответа stackoverflow.com/a/31952066
  • 0
    @ Fred-ii- эта пицца уже здесь?
Показать ещё 2 комментария
Теги:
forms

1 ответ

0
Лучший ответ

Хотя я не согласен с тем, как вы это делаете, решением было бы добавить 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;
    }
}
  • 1
    Зачем использовать $key ? Я имею в виду, вы только хотите вывести значения правильно?
  • 0
    @ Script47 правильный, поймал быструю опечатку - обновил. Спасибо :)
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню