Foros del Web » Programando para Internet » Javascript »

Sumar columna de una Tabla HTML

Estas en el tema de Sumar columna de una Tabla HTML en el foro de Javascript en Foros del Web. Ayuda por faaaa lo que pasa que soy alumno de sistemas y toy con una aplicacion en JAVA y tengo q llenar el detalle de ...
  #1 (permalink)  
Antiguo 05/11/2009, 20:50
 
Fecha de Ingreso: noviembre-2009
Mensajes: 12
Antigüedad: 14 años, 5 meses
Puntos: 0
Sumar columna de una Tabla HTML

Ayuda por faaaa lo que pasa que soy alumno de sistemas y toy con una aplicacion en JAVA y tengo q llenar el detalle de una factura estoy queriendolo hacer de manera dinamica y en cliente hasta el momento lo que he conseguido es agregar y quitar filas del detalle de esta manera


function remove(t)
{
var td = t.parentNode;
var tr = td.parentNode;
var table = tr.parentNode;
table.removeChild(tr);
}
function agregar(cant,descripcion,pu,codprod,codcarac,codse r){
//var j=Math.random();
var tipoitem=document.getElementById("combotipo").valu e;
if(tipoitem=="0"){
var cantidad=document.getElementById(cant).value;
var preciounitario=document.getElementById(pu).value;
var subtotal=cantidad*preciounitario;
}
var productoservi=descripcion;
var codigoproducto=codprod;
var codigocaracteristica=codcarac;
var codigoservicio=codser;

var tabla = document.getElementById("tabla");
var tbody = document.createElement("tbody");
var tr = document.createElement("TR");
tbody.appendChild(tr);

var td1 = document.createElement('TD');
td1.innerHTML=cantidad;
tr.appendChild(td1);

var td2 = document.createElement('TD');
td2.innerHTML=productoservi;
tr.appendChild(td2);

var td3 = document.createElement('TD');
td3.innerHTML=preciounitario;
tr.appendChild(td3);

var td4 = document.createElement('TD');
td4.innerHTML=subtotal;
tr.appendChild(td4);

var td5 = document.createElement('TD');
var btnEl = document.createElement('input');
btnEl.type = 'button';
btnEl.value = 'Quitar';
btnEl.onclick = function () {remove(this)};
tr.appendChild(td5).appendChild(btnEl);

var td6 = document.createElement('TD');
td6.innerHTML=codigoproducto;
tr.appendChild(td6);

var td7 = document.createElement('TD');
td7.innerHTML=codigocaracteristica;
tr.appendChild(td7);

var td8 = document.createElement('TD');
td8.innerHTML=codigoservicio;
tr.appendChild(td8);

var td9 = document.createElement('TD');
td9.innerHTML=preciounitario;
tr.appendChild(td9);

var td10 = document.createElement('TD');
td10.innerHTML=cantidad;
tr.appendChild(td10);

tabla.appendChild(tbody);
}

los datos se los paso de un servlet que ya filtra los datos que necesito ahora quisiera saber como recorrer la columna de subtotal y mostrar la suma en alguna etiqueta label o text por fa

Última edición por loquillo1985; 05/11/2009 a las 21:04
  #2 (permalink)  
Antiguo 05/11/2009, 20:51
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Sumar columna de una Tabla HTML

no lo puedo creer! te admiro, has superado a todos los demas...
por favor, lee lo siguiente, leer antes de preguntar.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 05/11/2009, 21:19
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Sumar columna de una Tabla HTML

algo me dice que este tema se perece a este http://www.forosdelweb.com/f13/obtener-valor-749209/, lo unico que en lugar campos son celdas. lo que se me ocurre es, entendiendo que el subtotal aparecera en la misma posicion de celda en cada fila, recorres las filas y lees la posicion de la celda para ir almacendando en una variable temporera el total.
Código:
// asumiendo que tabla es la referencia de la tabla que contiene las descripciones;
// y la cuarta celda de cada fila es el sutbotal;
var total = 0;
for(var i = 0; tabla.rows[i]; i++)
total += Number(tabla.rows[i].cells[3].innerHTML);
al final la variable total contiene la suma de todos los subtotales, este lo asignas al elemento que tienes pensado mostrar el total.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 05/11/2009 a las 21:32
  #4 (permalink)  
Antiguo 05/11/2009, 21:49
 
Fecha de Ingreso: noviembre-2009
Mensajes: 12
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Sumar columna de una Tabla HTML

Me sale error en:
Error: tabla.rows[i].cells[3] is undefined
  #5 (permalink)  
Antiguo 05/11/2009, 21:58
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Sumar columna de una Tabla HTML

te vuelvo a recordar, tabla tiene que ser una referencia de la tabla que contiene los detalles. este codigo tienes que invocarlo luego de llenar la tabla.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #6 (permalink)  
Antiguo 06/11/2009, 09:55
 
Fecha de Ingreso: noviembre-2009
Mensajes: 12
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Sumar columna de una Tabla HTML

Excelene tu idea lo unico q corregi es q no recorriera las filas desde 0 por ke esa es la cabezera de la tabla y los tipos no concuerdan para sumar caray como quisiera dominar mas el DOM va a ser mi futura meta:

Aki como kedo:
Tabla es el ID de mi tabla en el HTML

tabla = document.getElementById("tabla");
Esto gracias a ZeroKilled
var total = 0;
for(var i = 2; tabla.rows[i]; i++)
total += Number(tabla.rows[i].cells[3].innerHTML);
alert(total);

Espero les sea util a alguien mas
  #7 (permalink)  
Antiguo 06/11/2009, 10:32
 
Fecha de Ingreso: noviembre-2009
Mensajes: 12
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Sumar columna de una Tabla HTML

una duda no se si pueda hacer aki mismo como eliminar las filas de un Tbody de una tabla de un solo clic en un boton o cualquier objeto html
  #8 (permalink)  
Antiguo 06/11/2009, 10:40
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Sumar columna de una Tabla HTML

basicamente es lo mismo pero en lugar de tener una variable de control en el bucle, simplemente vas a referirte a la misma posicion de la fila. o sea, segun viendo el el codigo anterior.
Código:
while(tabla.rows[2])tabla.deleteRow(2);
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
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 03:59.