LANIA_Proyecto/js/tarjetasPromedio.js

59 lines
2.0 KiB
JavaScript

async function recuperarCantidadGenero(tipoConsulta) {
try {
const response = await fetch("../controllers/graficos.php", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({ tipoConsulta }),
});
const data = await response.json();
return data.cantidad || 0;
} catch (error) {
console.error("Error al recuperar datos:", error);
return 0;
}
}
async function obtenerPromedioPorGenero() {
// Obtener conteos de cada género
const femenino = await recuperarCantidadGenero("Femenino");
const masculino = await recuperarCantidadGenero("Masculino");
const noDefinido = await recuperarCantidadGenero("Prefiero no decir");
// Suma total de personas
const total = femenino + masculino + noDefinido;
// Evitar división por cero
if (total === 0) {
actualizarTarjetas(0, 0, 0);
return;
}
// Calcular el promedio (cantidad / total de registros)
// Aquí promedio es la proporción simple de cada género dentro del total
const promedioFemenino = femenino / total;
const promedioMasculino = masculino / total;
const promedioNoDefinido = noDefinido / total;
// Actualizar las tarjetas con los valores calculados
actualizarTarjetas(promedioFemenino, promedioMasculino, promedioNoDefinido);
}
// Función para actualizar las tarjetas en el DOM
function actualizarTarjetas(promF, promM, promND) {
const femenino = document.querySelector("#card-femenino h2");
const masculino = document.querySelector("#card-masculino h2");
const prefiero = document.querySelector("#card-prefiero h2");
if (femenino) femenino.textContent = (promF * 100).toFixed(2) + "%";
if (masculino) masculino.textContent = (promM * 100).toFixed(2) + "%";
if (prefiero) prefiero.textContent = (promND * 100).toFixed(2) + "%";
}
// Ejecutar cuando el DOM esté listo
document.addEventListener("DOMContentLoaded", obtenerPromedioPorGenero);