Foros del Web » Programando para Internet » Javascript »

Sumar dos campos tipo array y devolver valor a campo array

Estas en el tema de Sumar dos campos tipo array y devolver valor a campo array en el foro de Javascript en Foros del Web. Hola saludos, espero esta vez si me puedan ayudar se los agradecere gracias, tengo este inconveniente quiero multiplicar campos de texto y q me lo ...
  #1 (permalink)  
Antiguo 26/01/2010, 23:23
 
Fecha de Ingreso: septiembre-2008
Mensajes: 16
Antigüedad: 16 años, 1 mes
Puntos: 0
Sumar dos campos tipo array y devolver valor a campo array

Hola saludos, espero esta vez si me puedan ayudar se los agradecere gracias, tengo este inconveniente quiero multiplicar campos de texto y q me lo refleje en un tercero, pero este estos campos son de tipo array les coloco los codigos y asi les pueden servir a ustedes

aqui presento el formulario como tal, este va generando columnas dinamicante

Código HTML:
Ver original
  1. <td width="58" align='center'><input  type='text' size='4' name='cantidad[]' ></td>
  2.  
  3.  
  4.  
  5.    <td align='center'  width="58"><input  type='text' size='4'  name='precio_unitario[]'></td>
  6.  
  7.  
  8.    <td align='center' width="56"><input  type='text' size='4' name='total_p[]' ></td>


A continuacion se reciben en forma de array y lee cada valor del mismo
Código Javascript:
Ver original
  1. var a , total = 0;
  2.  
  3.         var elements = document.getElementsByName('precio_unitario[]');
  4.  
  5.  
  6.     for(a=0; a<elements.length; a++)//LEYENDO TODOS EN ARRAY PRECIO UNITARIO
  7.     {
  8.  
  9.      
  10.   total += (parseFloat(elements[a].value));
  11.  
  12.     }
  13.  
  14.  
  15.  
  16.  
  17.         var b , cantidadtotal = 0;
  18.  
  19.         var cantidad = document.getElementsByName('cantidad[]');  
  20.  
  21.         for(b=0; b<cantidad.length; b++)
  22.         {
  23.          cantidadtotal = (parseInt(cantidad[b].value));
  24.  
  25.         }


aclaro que se devolver un valor normal por ID un EJEMPLO.

document.getElementById("tsub_total").value = total_neto;

pero no puedo utilizar este metodo ya que como les dije utilizo formularios dinamicos, asi que imagino que obligatoriamente se tiene que utilizar document.getElementByName. Pero COMO?

mi pregunta es como puedo multiplicar cantidad por precio unitario (cantidad[] * precio_unitario[]) asignando el valor a total precios (total_p[]) directamente en el formulario y con cada uno de ellos. Por favor ayudenme asi sea un poquito. Gracias
  #2 (permalink)  
Antiguo 27/01/2010, 02:58
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Sumar dos campos tipo array y devolver valor a campo array

Creo que os complicáis la vida.... pero bueno ahí va una solucion posible, obviamente he tenido que simular los inputs generados dinamicamente....

Quim


Código Javascript:
Ver original
  1. function calcula(){
  2. var vcantidad=document.getElementsByName('cantidad[]');
  3. var vprecio_u=document.getElementsByName('precio_unitario[]');
  4. var unidades=0;
  5. var totaltotal=0;
  6. i=0;
  7. for (var obj in document.getElementsByName('total_p[]')){
  8.  if (i<document.getElementsByName('cantidad[]').length){
  9.   document.getElementsByName('total_p[]')[i].value=parseFloat(vcantidad[i].value)*parseFloat(vprecio_u[i].value);
  10.   unidades+=parseFloat(vcantidad[i].value);
  11.   totaltotal+=parseFloat(vcantidad[i].value)*parseFloat(vprecio_u[i].value);
  12.   }
  13.   i++;
  14.   }
  15.   document.getElementById("unidades").innerHTML=unidades;
  16.   document.getElementById("totaltotal").innerHTML=totaltotal;
  17. }

Código HTML:
Ver original
  1. <table width="50%" border="1" cellspacing="0" cellpadding="0">
  2.   <tr>
  3.     <td align='center'>Cantidad</td>
  4.     <td align='center'>Precio unitario</td>
  5.     <td align='center'>Total parcial</td>
  6.   </tr>
  7.   <tr>
  8.     <td width="58" align='center'><input  type='text' size='4' name='cantidad[]' value="" ></td>
  9.     <td align='center'  width="58"><input  type='text' size='4'  name='precio_unitario[]' value=""></td>
  10.     <td align='center' width="56"><input  type='text' size='4' name='total_p[]' value="" ></td>
  11.   </tr>
  12.   <tr>
  13.     <td width="58" align='center'><input  type='text' size='4' name='cantidad[]'  value=""></td>
  14.     <td align='center'  width="58"><input  type='text' size='4'  name='precio_unitario[]' value=""></td>
  15.     <td align='center' width="56"><input  type='text' size='4' name='total_p[]' value="" ></td>
  16.   </tr>
  17.   <tr>
  18.     <td width="58" align='center'><input  type='text' size='4' name='cantidad[]'  value=""></td>
  19.     <td align='center'  width="58"><input  type='text' size='4'  name='precio_unitario[]' value=""></td>
  20.     <td align='center' width="56"><input  type='text' size='4' name='total_p[]' value="" ></td>
  21.   </tr>
  22.   <tr>
  23.     <td width="58" align='center' id="unidades">&nbsp;</td>
  24.     <td align='center'  width="58">Total</td>
  25.     <td align='center' width="56" id="totaltotal">&nbsp;</td>
  26.   </tr>
  27. <input name="botfes" type="button" id="botfes" value="Fes" onClick="calcula()">

(Incluso funciona con IE6!!!!)

Deberías evitar los posibles NaN si hay campos sin valor...

Última edición por quimfv; 27/01/2010 a las 03:08
  #3 (permalink)  
Antiguo 27/01/2010, 11:27
 
Fecha de Ingreso: septiembre-2008
Mensajes: 16
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Sumar dos campos tipo array y devolver valor a campo array

Muchas gracias por tu solucion esta perfecto. Gracias de verdad

Etiquetas: campos, devolver, dos, tipo
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 12:24.