<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>EJERCICIO 24</title>
<style>
body {
font-family: Arial, sans-serif;
background: #f4f6f9;
margin: 0;
padding: 0;
}
header {
background: green;
color: white;
padding: 15px;
text-align: center;
}
h1 {
margin: 0;
}
main {
max-width: 1400px;
margin: 30px auto;
padding: 20px;
background: white;
border-radius: 10px;
box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}
ul {
list-style: none;
padding: 0;
}
li {
background: #ecf0f1;
margin: 10px 0;
padding: 15px;
border-left: 5px solid green;
border-right: 5px solid green;
transition: 0.3s;
border-radius:8px;
}
li:hover {
background: #d6eaf8;
border-left: 5px solid purple;
border-right: 5px solid purple;
}
footer{
margin: auto;
background-color: green;
text-align: center;
height: 150px;
color: white;
}
#codDepartamento, #volumenNegocio {
background-color: lightgoldenrodyellow;
}
form {
max-width: 600px;
margin: 20px auto;
}
.form-group {
margin-bottom: 18px;
}
label {
display: block;
margin-bottom: 6px;
font-weight: bold;
color: #333;
}
input[type="text"],
input[type="date"] {
width: 100%;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
box-sizing: border-box;
font-size: 1em;
}
/* Efecto visual al seleccionar un campo */
input[type="text"]:focus,
input[type="date"]:focus {
border-color: green;
outline: none;
box-shadow: 0 0 5px rgba(0,128,0,0.2);
}
input[readonly]{
background-color: #d3d3d3ff;
color: #6e6e6eff;
}
/* Estilo para los mensajes de error */
.error {
color: red;
font-size: 0.9em;
display: block;
margin-top: 5px;
}
/* Estilo unificado para botones */
input[type="submit"],
a button {
padding: 12px 20px;
margin-top: 10px;
border-radius: 5px;
background-color: green;
color: white;
border: none;
cursor: pointer;
font-size: 1em;
font-weight: bold;
transition: background-color 0.3s;
}
input[type="submit"]:hover,
a button:hover {
background-color: #006400;
}
</style>
</head>
<body>
<header>
<h1><b>EJERCICIO 24</b></h1>
</header>
<main>
<section>
<?php
/**
* @author: Enrique Nieto Lorenzo
* @since: 14/12/2025
* 24.Construir un formulario para recoger un cuestionario realizado a una persona y mostrar en la
* misma página las preguntas y las respuestas recogidas; en el caso de que alguna respuesta
* esté vacía o errónea volverá a salir el formulario con el mensaje correspondiente,
* pero las respuestas que habíamos tecleado correctamente aparecerán en el formulario
* (formulario "sticky").
*/
// Importación de la librería de validación
require_once "../core/231018libreriaValidacion.php";
$entradaOK = true; //Variable que nos indica que todo va bien
$aErrores = [ //Array donde recogemos los mensajes de error
'CodDepartamento' => '',
'DescDepartamento' => '',
'FechaCreacionDepartamento' => '',
'VolumenDeNegocio' => '',
'FechaBajaDepartamento' => ''
];
$aRespuestas=[ //Array donde recogeremos la respuestas correctas (si $entradaOK)
'CodDepartamento' => '',
'DescDepartamento' => '',
'FechaCreacionDepartamento' => '',
'VolumenDeNegocio' => '',
'FechaBajaDepartamento' => ''
];
//Para cada campo del formulario: Validar entrada y actuar en consecuencia
if (isset($_REQUEST["enviar"])) {//Código que se ejecuta cuando se envía el formulario
// Validamos los datos del formulario
// CAMPO OBLIGATORIO (amarillo)
$aErrores['CodDepartamento'] = validacionFormularios::comprobarAlfabetico($_REQUEST['CodDepartamento'], 3, 3, 1); // 1 = Requerido
$aErrores['DescDepartamento'] = validacionFormularios::comprobarAlfabetico($_REQUEST['DescDepartamento'], 255, 1, 1); // 1 = Requerido
// CAMPO OBLIGATORIO (amarillo)
// Primero comprobamos que no esté vacío
$aErrores['VolumenDeNegocio'] = validacionFormularios::comprobarNoVacio($_REQUEST['VolumenDeNegocio']);
if (empty($aErrores['VolumenDeNegocio'])) {
// Si no está vacío, comprobamos que sea un float
$aErrores['VolumenDeNegocio'] = validacionFormularios::comprobarFloat($_REQUEST['VolumenDeNegocio']);
}
// No es necesario validar la fecha de creación si es readonly y la ponemos nosotros
// $aErrores['T02_FechaCreacionDepartamento'] = validacionFormularios::validarFecha($_REQUEST['T02_FechaCreacionDepartamento'], 'now');
// Recorremos el array de errores
foreach ($aErrores as $campo => $error) {
if (!empty($error)) { // Comprobar si hay algún mensaje de error
$entradaOK = false; // Si hay algún error, $entradaOK = false
break; // Salimos del bucle
}
}
} else {//Código que se ejecuta antes de rellenar el formulario
$entradaOK = false;
}
//Tratamiento del formulario
if($entradaOK){ //Cargar la variable $aRespuestas y tratamiento de datos OK
date_default_timezone_set('Europe/Madrid');
setlocale(LC_TIME, 'es_ES.utf8');
// Recuperar los valores del formulario
$aRespuestas['CodDepartamento'] = $_REQUEST['CodDepartamento'];
$aRespuestas['DescDepartamento'] = $_REQUEST['DescDepartamento'];
$ofechaCreacionDepartamento = new DateTime($_REQUEST['FechaCreacionDepartamento']);
$aRespuestas['FechaCreacionDepartamento'] = $ofechaCreacionDepartamento->format('d-m-Y');
$aRespuestas['VolumenDeNegocio'] = $_REQUEST['VolumenDeNegocio'];
echo "<h2>Detalles del departamento:</h2>";
foreach ($aRespuestas as $campo => $valor) {
if (!empty($valor)) { // Mostramos solo los campos con respuesta
echo "<p>$campo: <b>$valor</b></p>";
}
}
// Botón para volver a recargar el formulario inicial
echo '<a href="' . $_SERVER['PHP_SELF'] . '"><button>Volver</button></a>';
} else { //Mostrar el formulario hasta que lo rellenemos correctamente
?>
<h2>DATOS DEPARTAMENTO</h2>
<hr>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
<div class="form-group">
<label for="codDepartamento">Código de Dpto:</label>
<input type="text" id="codDepartamento" name="CodDepartamento" value="<?php echo $_REQUEST['CodDepartamento'] ?? '' ?>">
<span class="error"><?php echo $aErrores['CodDepartamento'] ?></span>
</div>
<div class="form-group">
<label for="descripcion">Descripcion Dpto:</label>
<input type="text" id="descripcion" name="DescDepartamento" value="<?php echo $_REQUEST['DescDepartamento'] ?? '' ?>">
<span class="error"><?php echo $aErrores['DescDepartamento'] ?></span>
</div>
<div class="form-group">
<label for="fecha_creacion">Fecha creación Dpto: </label>
<input type="text" id="fecha_creacion" name="FechaCreacionDepartamento" value="<?php echo (new DateTime())->format('d-m-Y'); ?>" readonly>
<span class="error"><?php echo $aErrores['FechaCreacionDepartamento'] ?></span>
</div>
<div class="form-group">
<label for="volumenNegocio">Volumen de negocio:</label>
<input type="text" id="volumenNegocio" name="VolumenDeNegocio" value="<?php echo $_REQUEST['VolumenDeNegocio'] ?? '' ?>">
<span class="error"><?php echo $aErrores['VolumenDeNegocio'] ?></span>
</div>
<input type="submit" value="Enviar" name="enviar">
</form>
<?php
}
?>
</section>
</main>
<footer>
<caption>
<a href="/ENLDWESProyectoTema3/indexProyectoTema3.php">Enrique Nieto Lorenzo</a> | 10/11/2025
</caption>
</footer>
</body>
</html>