diff --git a/FormularioInicial.php b/FormularioInicial.php index 28912f7..a4e38b4 100644 --- a/FormularioInicial.php +++ b/FormularioInicial.php @@ -57,16 +57,50 @@ $resultado = $conexion->query($query); </div> <div class="card shadow p-4"> - <form action="model/login.php" method="POST"> + <form id="registroForm" action="model/login.php" method="POST"> <div class="row g-3"> <div class="col-md-6"> <label for="nombre" class="form-label">Nombre completo</label> <input type="text" class="form-control" id="nombre" name="nombre" required> </div> - <div class="col-md-6"> - <label for="correo" class="form-label">Correo electrónico</label> - <input type="email" class="form-control" id="correo" name="correo" required> - </div> + + <div class="col-md-6 position-relative"> + <label for="correo" class="form-label">Correo electrónico</label> + <input type="email" class="form-control" id="correo" name="correo" required autocomplete="off"> + <div id="sugerencias-correo" class="list-group position-absolute w-100" style="z-index: 1000;"></div> +</div> + +<script> +const correoInput = document.getElementById('correo'); +const sugerenciasDiv = document.getElementById('sugerencias-correo'); + +const dominios = ['@gmail.com', '@outlook.com', '@hotmail.com', '@lania.mx']; + +correoInput.addEventListener('input', () => { + const valor = correoInput.value.trim(); + sugerenciasDiv.innerHTML = ''; + + if (valor && !valor.includes('@')) { + dominios.forEach(dominio => { + const sugerencia = document.createElement('div'); + sugerencia.classList.add('list-group-item', 'list-group-item-action'); + sugerencia.textContent = valor + dominio; + sugerencia.onclick = () => { + correoInput.value = sugerencia.textContent; + sugerenciasDiv.innerHTML = ''; + }; + sugerenciasDiv.appendChild(sugerencia); + }); + } +}); + +// Ocultar sugerencias al hacer clic fuera del campo +document.addEventListener('click', (e) => { + if (!sugerenciasDiv.contains(e.target) && e.target !== correoInput) { + sugerenciasDiv.innerHTML = ''; + } +}); +</script> <div class="col-md-6"> <label for="telefono" class="form-label">Teléfono</label> <input type="text" class="form-control" id="telefono" name="telefono" required> @@ -80,18 +114,97 @@ $resultado = $conexion->query($query); <option value="Otro">Prefiero no especificar</option> </select> </div> - <div class="col-md-6"> - <label for="empresa" class="form-label">Empresa</label> - <input type="text" class="form-control" id="empresa" name="empresa" required> - </div> - <div class="col-md-6"> - <label for="examen" class="form-label">Examen</label> - <input type="text" class="form-control" id="examen" name="examen" required> - </div> - <div class="col-md-6"> - <label for="certificacion" class="form-label">Certificación</label> - <input type="text" class="form-control" id="certificacion" name="certificacion" required> - </div> + + <div class="row g-3"> + <!-- Empresa --> + <div class="col-md-4"> + <label for="empresa" class="form-label">Empresa</label> + <select id="empresa" name="empresa" class="form-select" required onchange="actualizarExamenes()"> + <option value="">Selecciona una empresa</option> + <option value="Microsoft">Microsoft</option> + <option value="Oracle">Oracle</option> + <option value="Cisco">Cisco</option> + </select> + </div> + <!-- Examen --> + <div class="col-md-4"> + <label for="examen" class="form-label">Examen</label> + <select id="examen" name="examen" class="form-select" required onchange="actualizarCertificaciones()"> + <option value="">Selecciona un examen</option> + </select> + </div> + + <!-- Certificación --> + <div class="col-md-4"> + <label for="certificacion" class="form-label">Certificación</label> + <select id="certificacion" name="certificacion" class="form-select" required> + <option value="">Selecciona una certificación</option> + </select> + </div> +</div> + +<script> + const datos = { + Microsoft: { + "AZ-900": ["Fundamentals", "Associate"], + "AZ-104": ["Associate", "Expert"], + "MS-900": ["Fundamentals"] + }, + Oracle: { + "Oracle Database SQL": ["Associate", "Professional"], + "Java SE Programmer": ["Associate", "Professional", "Master"] + }, + Cisco: { + "CCNA": ["Associate"], + "CCNP": ["Professional"], + "CCIE": ["Expert"] + } + }; + + function actualizarExamenes() { + const empresa = document.getElementById("empresa").value; + const examenSelect = document.getElementById("examen"); + const certificacionSelect = document.getElementById("certificacion"); + + examenSelect.innerHTML = '<option value="">Selecciona un examen</option>'; + certificacionSelect.innerHTML = '<option value="">Selecciona una certificación</option>'; + + if (empresa && datos[empresa]) { + for (let examen in datos[empresa]) { + const option = document.createElement("option"); + option.value = examen; + option.textContent = examen; + examenSelect.appendChild(option); + } + } + } + + function actualizarCertificaciones() { + const empresa = document.getElementById("empresa").value; + const examen = document.getElementById("examen").value; + const certificacionSelect = document.getElementById("certificacion"); + + certificacionSelect.innerHTML = '<option value="">Selecciona una certificación</option>'; + + if (empresa && examen && datos[empresa][examen]) { + datos[empresa][examen].forEach(cert => { + const option = document.createElement("option"); + option.value = cert; + option.textContent = cert; + certificacionSelect.appendChild(option); + }); + } + } + const form = document.getElementById('registroForm'); // Asegúrate que el formulario tenga este ID + if (form) { + form.addEventListener('submit', function(e) { + const fecha = document.getElementById('fecha').value; + const hora = document.getElementById('hora').value; + alert(`El examen está programado para el día ${fecha} a las ${hora} y recuerda llegar 15min antes.`); + // No usamos preventDefault, así que el formulario se envía normalmente + }); + } +</script> <div class="col-md-6"> <label for="hora" class="form-label">Hora de entrada</label> <select class="form-select" id="hora" name="h_entrada" required> diff --git a/LANIA.sql b/LANIA.sql index 312d741..4b56a1d 100644 --- a/LANIA.sql +++ b/LANIA.sql @@ -1,23 +1,26 @@ use lania; -drop table entrada; -CREATE TABLE entrada( +CREATE TABLE usuario( id_usuario INT AUTO_INCREMENT PRIMARY KEY, nombre VARCHAR(255) NOT NULL, correo VARCHAR(255) NOT NULL, telefono VARCHAR(20) NOT NULL, - genero VARCHAR(10) NOT NULL, - empresa VARCHAR(100) NOT NULL, + genero VARCHAR(10) NOT NULL +); + +CREATE TABLE entrada( + id_usuario INT NOT NULL, + empresa VARCHAR(20) NOT NULL, examen VARCHAR(50) NOT NULL, certificacion VARCHAR(50) NOT NULL, h_entrada TIME NOT NULL, - fecha DATE NOT NULL + fecha DATE NOT NULL, + FOREIGN KEY (id_usuario) REFERENCES usuario(id_usuario) ); -drop table salida; CREATE TABLE salida( id_salida INT AUTO_INCREMENT PRIMARY KEY, id_usuario INT NOT NULL, - hora_salida TIME NOT NULL, - FOREIGN KEY (id_usuario) REFERENCES entrada(id_usuario) + h_salida TIME NOT NULL, + FOREIGN KEY (id_usuario) REFERENCES usuario(id_usuario) ); \ No newline at end of file diff --git a/database/database.php b/database/database.php index bd71364..ceea450 100644 --- a/database/database.php +++ b/database/database.php @@ -2,7 +2,7 @@ $host = "localhost"; $user = "root"; - $pass = "Starfox19."; + $pass = "password"; $db = "lania"; $conexion = new mysqli($host, $user, $pass, $db); diff --git a/model/login.php b/model/login.php index f968769..f3c0d54 100644 --- a/model/login.php +++ b/model/login.php @@ -9,19 +9,25 @@ if ($_SERVER["REQUEST_METHOD"] === "POST") { $empresa = $_POST['empresa'] ?? ''; $examen = $_POST['examen'] ?? ''; $certificacion = $_POST['certificacion'] ?? ''; - $hora_entrada = $_POST['h_entrada'] ?? date("H:i:s"); - $fecha = $_POST['fecha'] ?? date("Y-m-d"); + $hora_entrada = $_POST['h_entrada'] ?: date("H:i:s"); // si no se proporciona, toma hora actual + $fecha = $_POST['fecha'] ?: date("Y-m-d"); // si no se proporciona, toma fecha actual $sql = "INSERT INTO entrada (nombre, correo, telefono, genero, empresa, examen, certificacion, h_entrada, fecha) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"; - + $stmt = $conexion->prepare($sql); + + if ($stmt === false) { + die("Error en la preparación: " . $conexion->error); + } + $stmt->bind_param("sssssssss", $nombre, $correo, $telefono, $genero, $empresa, $examen, $certificacion, $hora_entrada, $fecha); if ($stmt->execute()) { - echo "Entrada registrada correctamente."; + header("Location: ../FormularioInicial.php?exito=1"); + exit; } else { - echo "Error: " . $stmt->error; + echo "Error al guardar: " . $stmt->error; } $stmt->close();