Hola a todos.
Estoy haciendo un formulario algo complejo (al menos a comparación a un típico formulario de contacto) que incluye varios elementos, como inputs de tipo radio y selects. Yo realizo las validaciones de todos los campos en el mismo archivo PHP donde está el formulario, y el formulario llama a su mismo archivo cuando se envía por POST, con esto puedo mostrar todos los datos que ingresó el usuario en los campos para que no tenga que volver a cargarlos y además puedo mostrar arriba de todo el mensaje de error específico. Supongo que es la mejor manera.
Con los elementos que mencionaba, es decir los que son distintos a los input de tipo text, hago algo así:
Código PHP:
$sexo = 0; // Opción por defecto cuando nunca se envió el formulario.
if(isset($_POST['enviar_formulario'])) {
$sexo = $_POST['sexo']; // Cambio la opción por defecto por la seleccionada.
}
Y más abajo, en el mismo archivo PHP:
Código HTML:
<input type="radio" name="sexo" value="0"<?php if($sexo == 0) {echo ' checked="checked"';} ?> /> Masculino
<input type="radio" name="sexo" value="1"<?php if($sexo == 1) {echo ' checked="checked"';} ?> /> Femenino
De esta forma, cuando el usuario envía el formulairo y se produce un error, la opción que eligió está seleccionada, en vez de la que hay por defecto. Lo que me pregunto es: ¿esta manera de hacerlo es correcta? ¿No es redundante hacer dos veces la mismo pregunta (si sexo es igual a 0 y si es igual a 1)? ¿Qué otras alternativas hay?
Un saludo.