Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/05/2012, 18:42
juancenter
 
Fecha de Ingreso: abril-2011
Mensajes: 121
Antigüedad: 13 años, 1 mes
Puntos: 1
Problema para sumar en arreglos

Hola como están, hace unos pocos días vi aquí en el foro un código que dejó un usuario, lo copié, pegué, y funciona bien...

Por otro lado tengo un formulario con 6 filas de campos... cada fila tiene 5 campos de los cuales dos se suman y uno pone el total de la suma...

¿Por que copié el código? para no dejar 6 filas, ya que uno nunca sabe si se van a necesitar mas o menos filas... asi que reemplacé mis filas por ese código que es para añadir filas dinamicamente...

El problema que se me presentó fué que antes para sumar tenía un codigo en javascript que me permitía hacerlo facilmente ya que le asignaba el nombre del campo y listo....

Ahora los campos se llaman campo[] y al cambiar el código del javascript no me funciona...

Ahora les dejo los dos códigos para ver si me pueden ayudar a que el código para realizar las sumas funcione con el añadir filas...

código original....

Código HTML:
Ver original
  1. <html xmlns="http://www.w3.org/1999/xhtml">
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  3. <title>Jquery Agregar campos</title>
  4. <script type="text/javascript" src="jquery-1.6.4.min.js"></script>
  5. <link href="style.css" rel="stylesheet" type="text/css" />
  6.  
  7. <script type="text/javascript">
  8. emails=0;
  9. function agregar() {
  10.     emails=emails+1;
  11.     $("#campos").append('<li class="email'+emails+'"><label>cantidad</label><input type="text" name="cantidad[]" size="6" /><label>precio</label><input type="text" name="precio[]" size="8" /><label>total</label><input type="text" name="total[]" size="8" /> </li>');
  12. }
  13.  
  14. </head>
  15.  
  16.  
  17. <form name="frm_multiple" method="post" action="procesar.php">
  18.     <ul id="emails">
  19.         <li><a href="javascript:agregar();">Agregar</a><br />
  20.         <label>cantidad</label><input type="text" size="6" name="cantidad[]"/>
  21.         <label>precio</label><input type="text" size="8" name="precio[]" />
  22.         <label>total</label><input type="text" size="8" name="total[]" />
  23.         </li>
  24.         <li id="campos"><!-- aqui se crean los CAMPOS --></li>
  25.     </ul>
  26.    
  27.     <p align="center"><input type="submit" name="Send" value="Send" /></p>
  28.     </form>
  29.  
  30. </body>
  31. </html>

y el código con el que sumaba.... funciona bien con campos fijos..
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. //Multiplico cantidad por valor y pongo el total en subtotal
  3. function Multiplicar(){
  4.       interval = setInterval("calculo()",1);
  5. }
  6. function calculo(){
  7.       sum1 = document.frm_multiple.cantidad1.value;
  8.       sum2 = document.frm_multiple.precio1.value;
  9.       document.frm_multiple.total1.value = (sum1 * 1) + (sum2 * 1);
  10.  
  11.       sum3 = document.frm_multiple.cantidad2.value;
  12.       sum4 = document.frm_multiple.precio2.value;
  13.       document.frm_multiple.total2.value = (sum3 * 1) + (sum4 * 1);
  14. }
  15. function NoMultiplicar(){
  16.       clearInterval(interval);
  17. }
  18. </script>

Yo pensba que debía hacer esto pero no me funcionó...
Código Javascript:
Ver original
  1. function calculo(){
  2.       sum1 = document.frm_multiple.cantidad[].value;
  3.       sum2 = document.frm_multiple.precio[].value;
  4.       document.frm_multiple.total[].value = (sum1 * 1) + (sum2 * 1);
  5. }


Por cualquier ayuda, gracias!!