¿Cuál es la mejor forma de organizar un form en php?

Suelo hacer formularios a menusdo y me pregunto como es la mejor forma de hacerlo. Veo que hay algunos que te avisan si hay que repetir un dato, o falta alguno. Y que guardan los datos y no hay que rellenarlo todo otra vez.
¿Me podrías indicar como hacerlo?

1 Respuesta

Respuesta
1
Hay muchas formas de hacerlo. Yo suelo utilizar la que te explico a continuación. Es algo complicada pero accesible.
Digamos que construyo el formulario al revés. Es decir, primero le asigno valores, compruebo si hay errores, muestro los resultados o ejecuto la acción del formulario y después lo presento. Puede parecer una locura, pero seguro que me entiendes.
¿Cómo funciona de esta forma tan rara?
1º Asigno los valores a variables, una por cada campo del formulario. Solo les asigna valores si ya se ha pulsado "enviar", si no estarán vacías, de esta forma si es la primera vez que se muestra el formulario los campos aparecen vacíos, pero si ha habido un error y hay que repetir el formulario los datos están guardados y no hay que repetir todos.
2º Compruebo si se ha pulsado el botón "enviar" y proceso los errores de los campos (requeridos que estén vacíos, los que validamos y no pasan la validación, etc) y les asigno un texto de error para mostrar.
3º Si se ha puldado "enviar" y no hay errores proceso el formulario.
4º Si no se ha pulsado "enviar" o hay errores muestro el formulario, limpio si es la primera vez que se muestra, y con los valores ya cubiertos y los errores resaltados si ha habido algún error.
A Grosso Modo
$variable = _$REQUEST['variable'] ('variable' es un name de un campo en el formulario)
$error = false;
Si se ha pulsado el boton enviar entoces (proceso errores) 
{
Si $variable == "" entonces $error=true y errores['variable']="Este campo es necesario"
Si no errores['variable']=""
}
Si se ha pulsado enviar y error=false (proceso el formulario)
Si no, presento el formulario
<form>
<p>Variable:    <input type="text" size="40" maxlength="50" name="variable"
                <?PHP
                    if (isset($enviar))
                           print ("value='$variable'/> "); (escribe el valor si ya estaba introducido)
                     else
                           print ("/> ");
                    ?>
if ($errores["variable"] != "")
                          print ("<br />$errores['variable'] "); (Muestro el error si lo hay)
<boton de enviar)
</form)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas