Cambios formulario inicial

This commit is contained in:
Bruno Martínez Luna 2025-05-08 11:36:47 -06:00
parent b85743b036
commit 2aa8506cb2
4 changed files with 153 additions and 31 deletions

View File

@ -57,16 +57,50 @@ $resultado = $conexion->query($query);
</div> </div>
<div class="card shadow p-4"> <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="row g-3">
<div class="col-md-6"> <div class="col-md-6">
<label for="nombre" class="form-label">Nombre completo</label> <label for="nombre" class="form-label">Nombre completo</label>
<input type="text" class="form-control" id="nombre" name="nombre" required> <input type="text" class="form-control" id="nombre" name="nombre" required>
</div> </div>
<div class="col-md-6">
<label for="correo" class="form-label">Correo electrónico</label> <div class="col-md-6 position-relative">
<input type="email" class="form-control" id="correo" name="correo" required> <label for="correo" class="form-label">Correo electrónico</label>
</div> <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"> <div class="col-md-6">
<label for="telefono" class="form-label">Teléfono</label> <label for="telefono" class="form-label">Teléfono</label>
<input type="text" class="form-control" id="telefono" name="telefono" required> <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> <option value="Otro">Prefiero no especificar</option>
</select> </select>
</div> </div>
<div class="col-md-6">
<label for="empresa" class="form-label">Empresa</label> <div class="row g-3">
<input type="text" class="form-control" id="empresa" name="empresa" required> <!-- Empresa -->
</div> <div class="col-md-4">
<div class="col-md-6"> <label for="empresa" class="form-label">Empresa</label>
<label for="examen" class="form-label">Examen</label> <select id="empresa" name="empresa" class="form-select" required onchange="actualizarExamenes()">
<input type="text" class="form-control" id="examen" name="examen" required> <option value="">Selecciona una empresa</option>
</div> <option value="Microsoft">Microsoft</option>
<div class="col-md-6"> <option value="Oracle">Oracle</option>
<label for="certificacion" class="form-label">Certificación</label> <option value="Cisco">Cisco</option>
<input type="text" class="form-control" id="certificacion" name="certificacion" required> </select>
</div> </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"> <div class="col-md-6">
<label for="hora" class="form-label">Hora de entrada</label> <label for="hora" class="form-label">Hora de entrada</label>
<select class="form-select" id="hora" name="h_entrada" required> <select class="form-select" id="hora" name="h_entrada" required>

View File

@ -1,23 +1,26 @@
use lania; use lania;
drop table entrada; CREATE TABLE usuario(
CREATE TABLE entrada(
id_usuario INT AUTO_INCREMENT PRIMARY KEY, id_usuario INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(255) NOT NULL, nombre VARCHAR(255) NOT NULL,
correo VARCHAR(255) NOT NULL, correo VARCHAR(255) NOT NULL,
telefono VARCHAR(20) NOT NULL, telefono VARCHAR(20) NOT NULL,
genero VARCHAR(10) NOT NULL, genero VARCHAR(10) NOT NULL
empresa VARCHAR(100) NOT NULL, );
CREATE TABLE entrada(
id_usuario INT NOT NULL,
empresa VARCHAR(20) NOT NULL,
examen VARCHAR(50) NOT NULL, examen VARCHAR(50) NOT NULL,
certificacion VARCHAR(50) NOT NULL, certificacion VARCHAR(50) NOT NULL,
h_entrada TIME 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( CREATE TABLE salida(
id_salida INT AUTO_INCREMENT PRIMARY KEY, id_salida INT AUTO_INCREMENT PRIMARY KEY,
id_usuario INT NOT NULL, id_usuario INT NOT NULL,
hora_salida TIME NOT NULL, h_salida TIME NOT NULL,
FOREIGN KEY (id_usuario) REFERENCES entrada(id_usuario) FOREIGN KEY (id_usuario) REFERENCES usuario(id_usuario)
); );

View File

@ -2,7 +2,7 @@
$host = "localhost"; $host = "localhost";
$user = "root"; $user = "root";
$pass = "Starfox19."; $pass = "password";
$db = "lania"; $db = "lania";
$conexion = new mysqli($host, $user, $pass, $db); $conexion = new mysqli($host, $user, $pass, $db);

View File

@ -9,19 +9,25 @@ if ($_SERVER["REQUEST_METHOD"] === "POST") {
$empresa = $_POST['empresa'] ?? ''; $empresa = $_POST['empresa'] ?? '';
$examen = $_POST['examen'] ?? ''; $examen = $_POST['examen'] ?? '';
$certificacion = $_POST['certificacion'] ?? ''; $certificacion = $_POST['certificacion'] ?? '';
$hora_entrada = $_POST['h_entrada'] ?? date("H:i:s"); $hora_entrada = $_POST['h_entrada'] ?: date("H:i:s"); // si no se proporciona, toma hora actual
$fecha = $_POST['fecha'] ?? date("Y-m-d"); $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) $sql = "INSERT INTO entrada (nombre, correo, telefono, genero, empresa, examen, certificacion, h_entrada, fecha)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"; VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
$stmt = $conexion->prepare($sql); $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); $stmt->bind_param("sssssssss", $nombre, $correo, $telefono, $genero, $empresa, $examen, $certificacion, $hora_entrada, $fecha);
if ($stmt->execute()) { if ($stmt->execute()) {
echo "Entrada registrada correctamente."; header("Location: ../FormularioInicial.php?exito=1");
exit;
} else { } else {
echo "Error: " . $stmt->error; echo "Error al guardar: " . $stmt->error;
} }
$stmt->close(); $stmt->close();