Foros del Web » Programando para Internet » Javascript »

acumular un columna de una tabla

Estas en el tema de acumular un columna de una tabla en el foro de Javascript en Foros del Web. tengo una tabla de 5 columnas (codigo, desc, cantidad, precio, importe) que creo dinamicamente con DOM. en cada celda hay un campo input que se ...
  #1 (permalink)  
Antiguo 19/10/2007, 06:29
 
Fecha de Ingreso: agosto-2002
Ubicación: Lleida
Mensajes: 506
Antigüedad: 21 años, 8 meses
Puntos: 0
acumular un columna de una tabla

tengo una tabla de 5 columnas (codigo, desc, cantidad, precio, importe) que creo dinamicamente con DOM.
en cada celda hay un campo input que se llaman respectivamente ( codigo[], desc[], cantidad[], precio[], importe[])

necesito que despues al salir del precio me recorra la tabla y obtener el sumatorio de cantidad e importe.

parte del metodo de creacuón de los campos

Código HTML:
... 

objCell = objRow.insertCell(0);
    objCell.innerHTML = '<input name="cantidad[]" maxlength="20" type="text" id="cantidad[]" value="'+ camp3 +'" size="10" readonly/>';

    objCell = objRow.insertCell(0);
    objCell.innerHTML = '<input name="precio[]" maxlength="50" type="text" id="precio[]" value="'+ camp2 +'" size="40" readonly/>';

    objCell = objRow.insertCell(0);
    objCell.innerHTML = '<input name="importe[]" maxlength="50" type="text" id="importe[]" value="'+ camp +'" size="40" readonly/>';
gracias
  #2 (permalink)  
Antiguo 19/10/2007, 11:28
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Pregunta Re: acumular un columna de una tabla

sorry como que no te entendi = si pones un diseño de como deseas que quede seria mas util

saludos
__________________
gerardo
  #3 (permalink)  
Antiguo 25/10/2007, 05:27
 
Fecha de Ingreso: agosto-2002
Ubicación: Lleida
Mensajes: 506
Antigüedad: 21 años, 8 meses
Puntos: 0
Re: acumular un columna de una tabla

siento ho haber sido mas explícito, te explico:
imagínate un albaran de compra, y en su detalle tienes el encolumnado, de los articulos: codigo, descripción, cantidad, precio, importe
pues cada vez que finalizo la entrada de una linea quiero acumular la columna de importe de las n lineas que tiene ese albaran.
gracias
  #4 (permalink)  
Antiguo 25/10/2007, 12:20
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: acumular un columna de una tabla

Hola mikil

A ver si este código te sirve de ayuda:

Código PHP:
<html>
<
head>
<
script type="text/javascript">
function 
sumar() {
  
cant 0imp 0;
  
tab document.getElementById('tabla');
  for (
i=0ele tab.getElementsByTagName('input')[i]; i++) {
    
num = (ele.value!='' && !isNaN(ele.value)) ? parseFloat(ele.value) : 0;
    if (
ele.name=='cantidad[]'cant+=num;
    else if (
ele.name=='importe[]'imp+=num;
  } 
  
document.getElementById('cantidadTotal').value cant
  
document.getElementById('importeTotal').value imp
}
</script>
</head>
<body>
<table id="tabla">
<tr>
<td><input name="cantidad[]" maxlength="20" type="text" /></td>
<td><input name="precio[]" maxlength="20" type="text" /></td>
<td><input name="importe[]" maxlength="20" type="text" /></td>
</tr>
<tr>
<td><input name="cantidad[]" maxlength="20" type="text" /></td>
<td><input name="precio[]" maxlength="20" type="text" /></td>
<td><input name="importe[]" maxlength="20" type="text" /></td>
</tr>
<tr>
<td><input name="cantidad[]" maxlength="20" type="text" /></td>
<td><input name="precio[]" maxlength="20" type="text" /></td>
<td><input name="importe[]" maxlength="20" type="text" /></td>
</tr>
<tr>
<td><input id="cantidadTotal" maxlength="20" type="text" /></td>
<td>&nbsp;</td>
<td><input id="importeTotal" maxlength="20" type="text" /></td>
</tr>
</table>
<input type="button" value="Sumar" onclick="sumar()" />
</body>
</html> 
Saludo,
  #5 (permalink)  
Antiguo 26/10/2007, 05:59
 
Fecha de Ingreso: agosto-2002
Ubicación: Lleida
Mensajes: 506
Antigüedad: 21 años, 8 meses
Puntos: 0
Re: acumular un columna de una tabla

funciona perfecto. Muchiiiiiisimas gracias.
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 01:17.