hola como les va? tengo un problema grande, tengo que hacer una sumatoria y agrupamiento de datos que estan en json,y lo plateee asi
function mostrarInformeCategoria(){
document.getElementById('datosDeLaConsultaCategoria').style.display='block';
idCategoria = document.getElementById('nombreHiddenCategoria').value;
nombreCategoria = document.getElementById('nombreHiddenNombreCategoria').value;
var desde = $("#fechaDesde").val();
var hasta = $("#fechaHasta").val();
//aca obtengo los articulos de mi categoria
var datosVer = new FormData();
datosVer.append("idCategoriaProductos", idCategoria);
datosVer.append("desdeDos", desde);
datosVer.append("hastaDos", hasta);
$.ajax({
url:"ajax/productos.ajax.php",
method: "POST",
data: datosVer,
cache: false,
contentType: false,
processData: false,
dataType:"json",
success:function(respuestaSuma) {
//aca dibujo la tabla con javascript
var html="<table class=table table-bordered table-striped dt-responsive tablas width=100%>";
html+="<thead>";
html+="<tr>";
html+="<th> Producto </th>";
html+="<th> Codigo </th>";
html+="<th> Cantidad </th>";
html+="<th> Total </th> </tr></thead>";
html+="<tbody>";
for(j = 0; j < respuestaSuma.length; j++){
var datosDos = new FormData();
datosDos.append("productoContulta", respuestaSuma[j][5]);
datosDos.append("fechaInicio", desde);
datosDos.append("fechaFin", hasta);
$.ajax({
url:"ajax/sumaProductos.ajax.php",
method: "POST",
data: datosDos,
cache: false,
contentType: false,
processData: false,
dataType:"json",
success:function(respuestaDos) {
var total = 0;
for (var i = 0; i < respuestaDos.length; i++) {
var jsonComboDos = respuestaDos[i][6];
var obj = JSON.parse(jsonComboDos);
//aca deberia de sumar pero no se detiene en cada ciclo sino que hace todo en forma sincrona
for (var k=0; k < obj.length; k++) {
if(obj[k]['descripcion'] == respuestaSuma[j][5]){
total = parseFloat(total) + parseFloat(obj[k]['cantidad']);
alert(total);
// console.log(total);
}else{
//alert("No entra");
}
}
}
}
})
html+="<tr><td>"+respuestaSuma[j][5]+"</td><td>"+respuestaSuma[j][4]+"</td><td>"+total+"</td><td>datos3</td></tr>";
}
html+="</tbody>";
html+="</table>";
var total = 0;
document.getElementById("tabla").innerHTML=html;
//}
for (var i = 0; i < respuestaSuma.length; i++) {
console.log(respuestaSuma[i][5]);
// document.getElementById("totalCategoria").innerHTML = "Total: 20";
}
}
})
}
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)