conexión formularios al backend

This commit is contained in:
victor.monge 2025-04-27 19:47:51 -06:00
parent ad88d5e6e5
commit 972f1bcd1f
7 changed files with 64 additions and 33 deletions

View File

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

View File

@ -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.']);
}
}
?>

View File

@ -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.']);
}
}
?>

View File

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

View File

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

View File

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

View File

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