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