diff --git a/controllers/CandidatoController.php b/controllers/CandidatoController.php index 8e004a7..448b184 100644 --- a/controllers/CandidatoController.php +++ b/controllers/CandidatoController.php @@ -1,17 +1,17 @@ <?php -require_once __DIR__ . '/../models/Candidato.php'; +require_once __DIR__ . '/../models/CandidatoModel.php'; class CandidatoController { private static $candidatoModel = null; public static function inicializar() { if (self::$candidatoModel === null) { - self::$candidatoModel = new Candidato(); + self::$candidatoModel = new CandidatoModel(); } } - public static function regitrarCandidato() { + public static function registrarCandidato() { $nombres = $_POST['nombres']; $primer_apellido = $_POST['primer_apellido']; @@ -23,7 +23,7 @@ class CandidatoController { $id_rango_edad = $_POST['id_rango_edad']; $id_genero = $_POST['id_genero']; - self::$candidatoModel->registrarCandidato( + $insertId = self::$candidatoModel->registrarCandidato( $nombres, $primer_apellido, $segundo_apellido, @@ -34,8 +34,9 @@ class CandidatoController { $id_rango_edad, $id_genero ); - } + return $insertId; + } public static function registrarInfoCandidato() { $id_candidato = $_POST['id_candidato']; @@ -50,7 +51,7 @@ class CandidatoController { $calificacion_servicio = $_POST['calificacion_servicio']; $consentimiento_pub = $_POST['consentimiento_pub']; - self::$candidatoModel->registrarInfoCandidatos( + $insertId = self::$candidatoModel->registrarInfoCandidatos( $id_candidato, $id_pais, $id_estado, @@ -63,6 +64,8 @@ class CandidatoController { $calificacion_servicio, $consentimiento_pub ); + + return $insertId; } } diff --git a/controllers/registrarCandidato.php b/controllers/registrarCandidato.php index 245fe4d..7cc6b86 100644 --- a/controllers/registrarCandidato.php +++ b/controllers/registrarCandidato.php @@ -3,11 +3,14 @@ require_once __DIR__ . '/CandidatoController.php'; // Manejar la solicitud POST para registrar un candidato if ($_SERVER['REQUEST_METHOD'] === 'POST') { - // Llamar al controlador de candidatos para registrar un nuevo candidato - CandidadatoController::registrarCandidato(); - // Redirigir a la página de inicio después de registrar el candidato - header('Location: inicio.html'); + $insertId = CandidatoController::registrarCandidato(); + if($insertId > 0){ + echo json_encode(['registroExitoso' => true, 'message' => 'Se ha registrado el candidato correctamente.']); + } else { + echo json_encode(['registroExitoso' => false, 'message' => 'Error al registrar el candidato.']); + } + } ?> \ No newline at end of file diff --git a/controllers/registrarInfoCandidato.php b/controllers/registrarInfoCandidato.php index 08cb9c3..239a5a2 100644 --- a/controllers/registrarInfoCandidato.php +++ b/controllers/registrarInfoCandidato.php @@ -1,14 +1,16 @@ <?php - require_once __DIR__ . '/CandidatoController.php'; -// Manejar la solicitud POST para registrar información de un candidato +// Manejar la solicitud POST para registrar información un candidato if ($_SERVER['REQUEST_METHOD'] === 'POST') { - // Llamar al controlador de candidatos para registrar un nuevo candidato - CandidadatoController::registrarInfoCandidato(); - // Redirigir a la página de inicio después de registrar el candidato - header('Location: inicio.html'); + $insertId = CandidatoController::registrarInfoCandidato(); + if($insertId > 0){ + echo json_encode(['registroExitoso' => true, 'message' => 'Se ha registrado la información correctamente.']); + } else { + echo json_encode(['registroExitoso' => false, 'message' => 'Error al registrar la información.']); + } + } ?> \ No newline at end of file diff --git a/form_datos_extendidos.html b/form_datos_extendidos.html index e758382..d602654 100644 --- a/form_datos_extendidos.html +++ b/form_datos_extendidos.html @@ -110,7 +110,7 @@ <div class="form-col"> <div class="form-group"> <label for="codigo_postal" class="required">Código Postal</label> - <input type="number" min="0" step="1" id="codigo_postal" name="codigo_postal" maxlength="10" required> + <input type="number" min="0" step="1" id="codigo_postal" name="codigo_postal" maxlength="10"> </div> </div> <div class="form-col"> diff --git a/js/form_datos_basicos.js b/js/form_datos_basicos.js index 2463c61..f3c8cb3 100644 --- a/js/form_datos_basicos.js +++ b/js/form_datos_basicos.js @@ -84,9 +84,9 @@ formulario.addEventListener("submit", async(event) => { // Preparar datos para envío const formData = new FormData(); - formData.append("id_candidato", idCandidato); - formData.append("fecha_entrada", fechaEntrada); - formData.append("fecha_salida", fechaSalida); + //formData.append("id_candidato", idCandidato); + //formData.append("fecha_entrada", fechaEntrada); + //formData.append("fecha_salida", fechaSalida); formData.append("nombres", nombres); formData.append("primer_apellido", primerApellido); formData.append("segundo_apellido", segundoApellido); @@ -97,19 +97,22 @@ formulario.addEventListener("submit", async(event) => { formData.append("id_rango_edad", idRangoEdad); formData.append("id_genero", idGenero); + // Enviar petición POST para registrar candidato try { - const respuesta = await fetch('ruta', { + const respuesta = await fetch('controllers/registrarCandidato.php', { method: "POST", body: formData, }); - + + // Obtener respuesta de petición de registro const resultado = await respuesta.json(); - - if (resultado.datosIngresados) { + + // Verificar si el registro fue exitoso + if (resultado.registroExitoso) { alert('Se guardó la información correctamente'); window.location.href = 'inicio.html'; } else { - notificacion.textContent = resultado.mensaje; + notificacion.textContent = resultado.message; notificacion.style.display = "block"; } } catch (error) { diff --git a/js/form_datos_extendidos.js b/js/form_datos_extendidos.js index b39b72b..b40ef89 100644 --- a/js/form_datos_extendidos.js +++ b/js/form_datos_extendidos.js @@ -24,10 +24,11 @@ formulario.addEventListener("submit", async(event) => { const calificacionServicio = document.getElementById('calificacion_servicio').value; const consentimientoPub = document.getElementById('consentimiento_pub').checked; + var id = 6; // Preparar datos para envío const formData = new FormData(); - formData.append("id_candidato", idCandidato); + formData.append("id_candidato", id); formData.append("id_pais", idPais); formData.append("codigo_postal", codigoPostal); formData.append("id_estado", idEstado); @@ -35,19 +36,22 @@ formulario.addEventListener("submit", async(event) => { formData.append("id_colonia", idColonia); formData.append("id_nivel", idNivel); formData.append("id_giro", idGiro); - formData.append("nombre_empresa", nombreEmpresa); + + formData.append("nombre_empresa_institucion", nombreEmpresa); formData.append("motivo_examen", motivoExamen); + formData.append("calificacion_servicio", calificacionServicio); formData.append("consentimiento_pub", consentimientoPub ? 1 : 0); + try { - const respuesta = await fetch('ruta', { + const respuesta = await fetch('controllers/registrarInfoCandidato.php', { method: "POST", body: formData, }); const resultado = await respuesta.json(); - if (resultado.datosIngresados) { + if (resultado.registroExitoso) { alert('Se guardó la información correctamente'); window.location.href = 'inicio.html'; } else { diff --git a/models/Candidato.php b/models/CandidatoModel.php similarity index 84% rename from models/Candidato.php rename to models/CandidatoModel.php index b468d5f..f5494f2 100644 --- a/models/Candidato.php +++ b/models/CandidatoModel.php @@ -2,7 +2,7 @@ require_once __DIR__ . '/../controllers/Database.php'; -class Candidato { +class CandidatoModel { private $conn; @@ -61,10 +61,26 @@ class Candidato { if (!$stmt->execute()) { throw new Exception("Error al insertar datos de información del candidato: " . $stmt->error); } - + + $insertId = $stmt->insert_id; + $stmt->close(); + + return $insertId; } + /** + * Insertar un nuevo candidato en la base de datos. + * @param string $nombres Nombres del candidato. + * @param string $primer_apellido Primer apellido del candidato. + * @param string $segundo_apellido Segundo apellido del candidato. + * @param string $correo Correo electrónico del candidato. + * @param string $telefono Teléfono del candidato. + * @param int $id_examen ID del examen asociado al candidato. + * @param int $id_tipo_id ID del tipo de identificación del candidato. + * @param int $id_rango_edad ID del rango de edad del candidato. + * @param int $id_genero ID del género del candidato. + */ public function registrarCandidato( $nombres, $primer_apellido, @@ -96,9 +112,9 @@ class Candidato { if (!$stmt->execute()) { throw new Exception("Error al insertar candidato: " . $stmt->error); } - //$insertId = $stmt->insert_id; + $insertId = $stmt->insert_id; $stmt->close(); - //return $insertId; + return $insertId; } public function obtenerCandidatoPorId($id_candidato) {