Imaginemos que tenemos un formulario con diferentes campos, y que el usuario envía solo uno, o que uno es correcto y el otro no, para ello podemos mostrar de nuevo los datos que ha enviado el usuario y que son correctos.
Para ello, basandonos en nuestro script de base podemos crear el siguiente:
Este script que ya no es conocido, tiene algunas modificaciones interesantes pero sencillas, por ejemplo:
Para ello, basandonos en nuestro script de base podemos crear el siguiente:
<html> <head> <title> Comprobación de datos requeridos </title> </head> <body> <h1>Comprobación de datos requeridos</h1> <?php /* Comenzamos buscando si visto esta activo, y vamos llamando a las funciones correspondientes para controlar el formulario */ $errors_array = array(); if(isset($_REQUEST["visto" ])){ comprobarDatos(); if(count($errors_array) != 0){ mostrarErrores(); mostrarInicio(); } else { respuesta(); } } else { mostrarInicio(); } /* Muestra el formulario */ function mostrarInicio() { $nombre = isset($_REQUEST["first"]) ? $_REQUEST["first"] : ""; $apellido = isset($_REQUEST["last"]) ? $_REQUEST["last"] : ""; echo "<form method='post'>" ; echo "<p>¿Cuál es su nombre?</p>" ; echo "<input name='first' type='text' value='". $nombre . "'>" ; echo "<p>¿Cuál es su apellido?</p>" ; echo "<input name='last' type='text' value='". $apellido . "'>" ; echo "<input type='submit' value='Enviar'>" ; echo "<input type='hidden' name='visto' value='already_seen'>" ; echo "</form>" ; } /* Comprueba que el campo de texto no este en blanco, de ser así introduce un mensaje en el array global */ function comprobarDatos() { global $errors_array; if($_REQUEST["first" ] == "" ) { $errors_array[] = "<font color='red'>Indique su nombre</font>" ; } if($_REQUEST["last" ] == "" ) { $errors_array[] = "<font color='red'>Indique su apellido</font>" ; } } /* recoge los errores del array global, lo recorre y muestra su contenido */ function mostrarErrores() { global $errors_array; foreach ($errors_array as $err){ echo '<p>' . $err . '</p>'; } } /* Muestra la respuesta del servidor cuando todo esta correcto */ function respuesta() { echo "Su nombre es: "; echo $_REQUEST["first"]; echo '<p></p>Y su apellido: '; echo $_REQUEST["last"]; } ?> </body> </html>
Este script que ya no es conocido, tiene algunas modificaciones interesantes pero sencillas, por ejemplo:
- En la función mostrarInicio() vemos que aparecen dos líneas de código nuevas, las cuales se encargan de recoger en dos variables si ya ha sido enviado el formulario y de poner en lugar del campo como value del input el valor recogido, o en caso de que no haya nada poner el valor de cadena vacía.
$nombre = isset($_REQUEST["first"]) ? $_REQUEST["first"] : ""; $apellido = isset($_REQUEST["last"]) ? $_REQUEST["last"] : "";
- En la función comprobarDatos() aparecen dos if, uno por cada campo del formulario y añadiendo al array de errores cada uno el error que puede incluir
- Finalmente en respuesta se muestran los datos con el formato que deseemos de la forma habitual.
No hay comentarios:
Publicar un comentario