59 lines
2.0 KiB
JavaScript
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);
|