60 lines
2.0 KiB
JavaScript
60 lines
2.0 KiB
JavaScript
|
|
async function recuperarCantidadGenero(tipoConsulta) {
|
|
try {
|
|
const response = await fetch("../controllers/graficosController.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 decirlo");
|
|
|
|
// 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) {
|
|
// Multiplicamos por 100 para mostrar el promedio como número decimal simple.
|
|
// Aquí simplemente mostramos el promedio como número decimal con 2 decimales
|
|
|
|
document.querySelector("#card-femenino h2").textContent = promF.toFixed(2)+ "%";;
|
|
document.querySelector("#card-masculino h2").textContent = promM.toFixed(2) + "%";;
|
|
document.querySelector("#card-nodefinido h2").textContent = promND.toFixed(2) + "%";;
|
|
|
|
|
|
}
|
|
|
|
// Ejecutar cuando el DOM esté listo
|
|
document.addEventListener("DOMContentLoaded", obtenerPromedioPorGenero);
|