Foros del Web » Programando para Internet » Javascript »

Sumar filas en una tabla HTML

Estas en el tema de Sumar filas en una tabla HTML en el foro de Javascript en Foros del Web. Buen dia a todos tengo un pequeño gran problemita, les comento, yo tengo una tabla donde en algunas celdas tengo unos input donde el usuario ...
  #1 (permalink)  
Antiguo 27/09/2012, 08:03
 
Fecha de Ingreso: septiembre-2012
Mensajes: 5
Antigüedad: 11 años, 7 meses
Puntos: 0
Información Sumar filas en una tabla HTML

Buen dia a todos tengo un pequeño gran problemita, les comento, yo tengo una tabla donde en algunas celdas tengo unos input donde el usuario ingresará ciertas cantidades, lo que quiero es que al final de cada fila habrá una columna de total para mostrar la sumatoria de toda la fila. Lo que tengo hasta el momento es lo siguiente:

function sumar(txtTotal) {
var tabla = document.getElementById("tblPlanificacion");
var fila = tabla.getElementsByTagName("tr");
var sum = new Array(fila.length);
var tot;
var total = 0;

for (i = 0; i < sum.length; i++)
sum[i] = 0;
for (i = 1, tot = fila.length - 1; i < tot; i++) {
//total = 0;
celdas = fila[i].getElementsByTagName("td");
for (var j = 5, to = celdas.length - 1; j < to; j++) {
//total = 0;
textos = celdas[j].getElementsByTagName("input");
for (var t = 0, tota = textos.length; t < tota; t++) {
var num = parseInt(textos[t].value);
if (isNaN(num)) num = 0;
total += num;
sum[t - 2] += num;
}
//textos[textos.length - s1].value = total;
//total = 0;
txtTotal.value = total;
sum[t - 2] += num;
}
}
}

si me hace la sumatoria como yo quiero pero me va acumulando la variable total por ejemplo:

[TABLE]
[TR]
[TD]Pedido 1[/TD][TD] Pedido 2[/TD][TD]Pedido 3[/TD][TD] Total[/TD]
[/TR]
[TR]
[TD]100[/TD] [TD] 125 [/TD] [TD] 150[/TD] [TD] 375[/TD]
[/TR]
[TR]
[TD]75[/TD] [TD] 40[/TD] [TD]200[/TD] [/TD]690[/TD]
[/TR]
[/TABLE]
como ven me va sumando el total en cada fila, enserio necesito su ayuda, muchas gracias.

Nota: en el codigo esta la variable total igualada a 0 pero cada vez que hago esto lo que me muestra siempre es 0 no la sumatoria.

Última edición por waltercordero; 27/09/2012 a las 08:14
  #2 (permalink)  
Antiguo 27/09/2012, 08:15
Avatar de Alexis_Mejias  
Fecha de Ingreso: enero-2005
Ubicación: Santiago
Mensajes: 77
Antigüedad: 19 años, 3 meses
Puntos: 17
Respuesta: Sumar filas en una tabla HTML

El tema es que estas tomando todos los TR al hacer eso te hara la suma completa de todo
debes enviarle ademas la posicion del tr cosa que agregues un IF que corresponda a la fila del total.
__________________
Alexis Mejias C.
Freelancer Chile - Si te sirvió puntúa positivo
Blog Personal
  #3 (permalink)  
Antiguo 27/09/2012, 08:30
 
Fecha de Ingreso: septiembre-2012
Mensajes: 5
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Sumar filas en una tabla HTML

Alexis_Mejias, disculpa la molestia podrías hecharme la mano, que honestamente mi mente ya tupio :s , disculpa la molestia, y gracias por tu comentario
  #4 (permalink)  
Antiguo 27/09/2012, 08:41
Avatar de Alexis_Mejias  
Fecha de Ingreso: enero-2005
Ubicación: Santiago
Mensajes: 77
Antigüedad: 19 años, 3 meses
Puntos: 17
Respuesta: Sumar filas en una tabla HTML

Código HTML:
function sumar(txtTotal, idFila) {
	var tabla = document.getElementById("tblPlanificacion");
	var fila = tabla.getElementsByTagName("tr");
	var sum = new Array(fila.length);
	var tot;
	var total = 0;

	for (i = 0; i < sum.length; i++)
	{
		sum[i] = 0;
		for (i = 1, tot = fila.length - 1; i < tot; i++) {
			if (idFila == i)
			{
				//total = 0;
				celdas = fila[i].getElementsByTagName("td");
				for (var j = 5, to = celdas.length - 1; j < to; j++) {
					//total = 0;
					textos = celdas[j].getElementsByTagName("input");
					for (var t = 0, tota = textos.length; t < tota; t++) {
						var num = parseInt(textos[t].value);
						if (isNaN(num)) num = 0;
						total += num;
						sum[t - 2] += num;
				}
				//textos[textos.length - s1].value = total;
				//total = 0;
				txtTotal.value = total;
				sum[t - 2] += num;
				}
			}
		}
	}
}
Y donde llamas la función deberias pasarle la fila, sumar(txtTotal, 1), sumar(txtTotal, 2), sumar(txtTotal, etc);

Saludos,
__________________
Alexis Mejias C.
Freelancer Chile - Si te sirvió puntúa positivo
Blog Personal
  #5 (permalink)  
Antiguo 27/09/2012, 09:30
 
Fecha de Ingreso: septiembre-2012
Mensajes: 5
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Sumar filas en una tabla HTML

Alexis_mejia muchas gracias manin te lo agradezco me sirvió bastante tu código, cuando vengas por Guatemala te espera una cerveza si es que bebes ; bendiciones manin y nuevamente gracias por tu ayuda....

Etiquetas: filas, html, input, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:51.