Я считаю, что это хороший способ сделать это, хотя я, вероятно, выполнил бы всю логику проверки прямо в верхней части скрипта, например:
// set the error flag
$error_flag = false;
// form list values
$arr = array("blue", "red", "green");
if(isset($_POST)){
// get form value
$name = $_POST['color'];
// verify value is valid
if (in_array($name, $arr)) {
// valid value
} else {
// error - you selected an invalid value!
$error_flag = true;
}
if($error_flag == false){
// process data and save to database, etc etc
}
}
if($error_flag == true){
// display the error
}
// build options
for($i = 0, $size = sizeof($arr); $i < $size; ++$i){
echo '<option value="' . $arr[$i] . '">' . $arr[$i] . '</option>';
}
Я добавил вфлаг ошибки, чтобы вы также могли уведомить конечных пользователей о том, что они сделали неправильно, и позволить им снова заполнить форму.Конечно, вы можете развернуть его так, чтобы правильные поля «запоминали» данные, которые уже были отправлены ранее, и указывали, какие поля были неверными.