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 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>

View File

@ -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)
);

View File

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

View File

@ -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();