Mostrando resultados del 1 al 12 de 12

Tema: [Solucionado] Sumar campos con 'for'

  1. #1

    Question [Solucionado] Sumar campos con 'for'

    Hola!

    tengo una duda que me corroe... vamos a ver, tenemos un formulario con varios campos donde escribir importes. ¿Podríamos sumar estos importes con un FOR?

    este es el aspecto del formulario....
    campo (B1) | campo (C1) | campo (D1) | campo (E1) | campo (F1) --- linea 1
    campo (B2) | campo (C2) | campo (D2) | campo (E2) | campo (F2) --- linea 2
    campo (B3) | campo (C3) | campo (D3) | campo (E3) | campo (F3) --- linea 3


    este seria el for que estoy ideando (que no da resultado ninguno por el momento):lo que se pretende es sumar los campos por columnas

    Código:
    for (i=0, i=ultimalinea, i++){
    var totaltotales = (parseFloat(document.getElementById('B' + i).value) )
    }

    a ver si alguien me puede ayudar a resolver esto!!

    Muchísimas gracias!
    Mod by Cuban: Usa las etiquetas de CODE
    Última edición por cuban; 29-jun-2011 a las 15:54

  2. #2

    Predeterminado Respuesta: Sumar campos con 'for'

    en principio parece sencillo.
    Viendo como tienenes los Identificadores puestos para cada campo, veo que para la columna primera utilizas B+numero relativo, para la segunda, utilizas D+numero relativo.

    Pues con el bucle for debes realizar lo siguiente:
    Código:
    var totaltotales;
    totalTotales=0;
    for (i=0, i=ultimalinea, i++){
    totaltotales = totalTotales+(parseFloat(document.getElementById('B' + i).value) );
    }
    Que fue lo unico que cambie de tu Code, fue que la declaración de la variable totalTotales la realize fuera del bucle for, y cuando obtengo el contenido de cada element con X id se lo sumo a la variable totalTotales almacenandolo en esta misma variable.

    Pd: Utiliza las etiquetas de codigo cada vez que ballas a poner codigo, así queda mucho más legible para los usuarios que quieran intentar ayudarte

  3. #3

    Predeterminado Respuesta: Sumar campos con 'for'

    Umm wenas de nuevo...

    Cuban, he probado el código tal y como lo escribiste.. pero no me funciona.. no se si estaré fastidiándola en algo; lo único que añadí fue un alert para mostrar el resultado.

    Código:
    var totaltotales;
    totalTotales=0;
    for (i=0,i=posicionCampo,i++){
    totaltotales = totalTotales+(parseFloat(document.getElementById('B' + i).value) );
    }
    alert (totaltotales);
    tambien he probado con While, pero igualmente no hace nada. Dejo el código por si acaso lo ves mas sencillo de esta forma...

    Código:
    var numerolista = 'ultimo numero de fila';
    var sumab = 0;
    var i= 0;
    
    while(i<numerolista){
    sumab = (sumab + (parseFloat(document.getElementById('B' + i).value)));
    i++;
    a lo mejor asi nos resulta mas sencillo. de cualquier forma, a mi por el momento no me va

    Un saludo!

    PD: no recordaba como iva lo del codigo. Lo siento.

  4. #4

    Predeterminado Respuesta: Sumar campos con 'for'

    primero que nada, te diria que realizes el bucle for o while sobre un array e incrementes su valor con otra variable solo con el objetivo de saber si podemos acceder a los elementos por el ID, en caso de que sea positivo esto, el fallo estaría en la suma de los valores.
    Código:
    var totaltotales;
    var matriz=new array();
    var incremento;
    totalTotales=0;
    incremento=0;
    for (i=0,i=posicionCampo,i++){
    matriz(incremento)=document.getElementById('B' + i).value;
    incremento=incremento+1;
    }
    alert( incremento(0) );

  5. #5

    Predeterminado Respuesta: Sumar campos con 'for'

    Código:
    <html>
    <body>
    
    <form name="form1">
    <input type="text" id="B1" value="100">
    <input type="text" id="B2" value="200">
    <input type="text" id="B3" value="100">
    </form>
    
    <script languaje="javascript" type="text/javascript">
    var matriz=new array();
    for(i=0,i<=posicionCampo,i++){
    matriz(i)=(document.getElementById('B' + i).value);
    }
    document.write(matriz);
    </script>
    
    </body>
    </html>
    Esto es lo ultimo a lo que he llegado (es solo una prueba y he incluido el formulario (mas o menos)) pero nada, sigue sin funcionar. Me tiene esto un poco desesperado..

    He probado: document.write(matriz[1]); o document.write(matriz[2]); y na de na..

    Un saludo

  6. #6

    Predeterminado Respuesta: Sumar campos con 'for'

    Buenas, antes que nada decirte o preguntarte: ¿Donde declaras la variable :"posicionCampo"?
    Este detalle no me di cuenta en las respuestas anteriores, haces uso de una variable que no se que valor tiene.
    Código:
    <html>
    <body>
    
    <form name="form1">
    <input type="text" id="B1" value="100">
    <input type="text" id="B2" value="200">
    <input type="text" id="B3" value="100">
    </form>
    
    <script languaje="javascript" type="text/javascript">
    var posicionCampo;
    posicionCampo=3;
    var i;
    for(i=0,i<=posicionCampo,i++){
    alert(document.getElementById('B' + i).value);
    }
    </script>
    
    </body>
    </html>
    Segundo, no puedes hacer un document.write de una matriz simplemente. Tienes que indicarle el indice de esta o utilizar un for each.


    Que navegador tienes?
    ya que en el mozilla si navegas hasta "herramientas->consola de errores"
    te muestra al cargar tu formulario en que linea de java script o donde puede estar el fallo.

  7. #7

    Predeterminado Respuesta: Sumar campos con 'for'

    Cita Iniciado por El92rozn Ver Mensaje
    Código:
    <html>
    <body>
    
    <form name="form1">
    <input type="text" id="B1" value="100">
    <input type="text" id="B2" value="200">
    <input type="text" id="B3" value="100">
    </form>
    
    <script languaje="javascript" type="text/javascript">
    var matriz=new array();
    for(i=0,i<=posicionCampo,i++){
    matriz(i)=(document.getElementById('B' + i).value);
    }
    document.write(matriz);
    </script>
    
    </body>
    </html>
    Esto es lo ultimo a lo que he llegado (es solo una prueba y he incluido el formulario (mas o menos)) pero nada, sigue sin funcionar. Me tiene esto un poco desesperado..

    He probado: document.write(matriz[1]); o document.write(matriz[2]); y na de na..

    Un saludo
    Tiene varios errores de sintaxis, compáralo con el siguiente código:

    Código:
    <html>
    <body>
    
    <form name="form1">
    <input type="text" id="B1" value="100">
    <input type="text" id="B2" value="200">
    <input type="text" id="B3" value="100">
    </form>
    
    <script languaje="javascript" type="text/javascript">
    var matriz=new Array();
    var posicionCampo = 3;
    for(i=1;i<=posicionCampo;i++){
    matriz[i]=(document.getElementById('B' + i).value);
    }
    document.write(matriz);
    </script>
    
    </body>
    </html>
    También averigua más sobre Array y sus métodos: concat, join, pop, push, shift, unshift, slice, splice, reverse y sort.

  8. #8

    Predeterminado Respuesta: Sumar campos con 'for'

    no me había fijado en los puntos y coma, daba por sentado la sintaxis del for

  9. #9

    Predeterminado Sumar campos con 'for'

    Siento lo de los dos puntos del for. Todabia no controlo Javascript como me gustaría...
    bueno, para aclarar cosillas (que no me di cuenta de aclarar anteriormente...) la variable 'posicionCampo' contiene el numero de filas que existen en la tabla. En el ejemplo posicionCampo seria 3. Esa variable la obtengo en una función anterior en el mismo script.

    He mirado las funciones para los arrays y he encontrado una que quizás se aproxima en funcionalidad a lo que necesitamos... la función 'push' agrega al final del array otro valor sin saber la posición.

    lo he incorporado y estoy probando con esto, pero no obtengo resultados, no se si lo estaré utilizando correctamente :
    Código:
    var matriz=new Array();
    for(i=0;i<=posicionCampo ;i++){
    valorCampo=document.getElementById('B' + i).value;
    matriz.push(valorCampo);
    }
    for(x=i;i<=i;x++){
    document.write(matriz[x]);
    document.write("<br/>");
    }
    Muchuisimas Gracias por ayudarme con esto.

    Un saludo

    PD: Gracias por lo de la consola de errores. No tenia ni idea de que me pudiera ayudar con javascript

    __________________________________________________ _______________________________

    Editado:
    weno e seguido probando con y efectivamente, cambiando los las comas por puntos y comas y alguna otra cosilla que tenía mal, el script funciona. almacena en 'matriz' los importes de cada campo.

    pero ahora llego a la segunda parte del problema... como sumo esos importes entre si?
    es decir B1+B2+B3+Bn, teniendo en cuenta que estan todos en un array...

    he intentado lo siguiente:
    Código:
    var numero = 3;
    var matriz=new Array();
    for(i=1;i<=numero;i++){
    matriz[i]=(parseFloat(document.getElementById('B' + i).value));
    }
    var suma=0;
    for(var x=0;x<matriz.length;x++){
    suma+=(matriz[x]);
    }
    alert(suma);
    pero da como resultado NaN... ummm se os ocurre por que?


    Un saludo y reitero mi agradecimiento!
    Última edición por Fashion; 04-jul-2011 a las 18:14 Razón: DOBLE POST

  10. #10

    Predeterminado Respuesta: Sumar campos con 'for'

    Cita Iniciado por El92rozn Ver Mensaje
    weno e seguido probando con y efectivamente, cambiando los las comas por puntos y comas y alguna otra cosilla que tenía mal, el script funciona. almacena en 'matriz' los importes de cada campo.

    pero ahora llego a la segunda parte del problema... como sumo esos importes entre si?
    es decir B1+B2+B3+Bn, teniendo en cuenta que estan todos en un array...

    he intentado lo siguiente:
    Código:
    var numero = 3;
    var matriz=new Array();
    for(i=1;i<=numero;i++){
    matriz[i]=(parseFloat(document.getElementById('B' + i).value));
    }
    var suma=0;
    for(var x=0;x<matriz.length;x++){
    suma+=(matriz[x]);
    }
    alert(suma);
    pero da como resultado NaN... ummm se os ocurre por que?


    Un saludo y reitero mi agradecimiento!
    - No existe matriz[0].
    - La variable matriz sigue siendo de tipo texto, por lo tanto tendrás que usar "parseFloat".

    Código:
    for(var x=1;x<matriz.length;x++){
    suma+=parseFloat(matriz[x]);
    }

  11. #11

    Predeterminado Respuesta: Sumar campos con 'for'

    - No existe matriz[0].
    Cierto

    - La variable matriz sigue siendo de tipo texto, por lo tanto tendrás que usar "parseFloat".
    Quitando de lado los tecnisismos* si cuando hace la asignación está haciendo el parseFloat, ¿por qué de nuevo? a esa altura ya se sabe que es un float.

    Nota *: matriz[x] sería en ese caso del tipo string(suponiendo que se quiso decir eso), matriz es del tipo Array.
    Cita Iniciado por Los Redondos y El Soldado
    Curastes todas tus heridas con agua podrida
    le mentistes al diablo tres veces vendiendole flore,
    y te llevastes en andas al angel de los perdedore.
    -- Angel de los perdedores --

  12. #12

    Predeterminado Respuesta: Sumar campos con 'for'

    RESUELTO AMIGOS!!

    el problema era exactamente el que me indicasteis Matriz[0] no contenía valores, por lo que en vez de empezar el primer for (donde se ivan agregando valores a matriz) en vez de empezar en 1 empezar a asignar en 0 es decir for(i=0;i<=....). Asimismo, los valores de las id de la tabla, tendrán que empezar en 0 también.

    En definitiva el código quedaría así:

    Código:
    //asumimos que posicionCampo empieza en 0 y acaba en n, siendo n la ultima fila.
    var matriz=new Array();
    for(i=0;i<=posicionCampo;i++){
    matriz[i]=(parseFloat(document.getElementById('B' + i).value));
    }
    var suma=0;
    for(var x=0;x<matriz.length;x++){
    suma+=(matriz[x]);
    }
    alert(suma);
    Muchísimas gracias por toda la ayuda, sin la cual no habría podido continuar con el proyecto que tengo entre manos.

    Un saludo!!

Temas Similares

  1. Respuestas: 7
    Último mensaje: 22-may-2011, 01:30
  2. [Solucionado] Multiplicar números impares y sumar los pares
    By ka3los in forum Visual Basic y Net
    Respuestas: 4
    Último mensaje: 10-may-2011, 15:55
  3. Campos obligatorios de formulario
    By Banker25 in forum Php
    Respuestas: 4
    Último mensaje: 08-may-2011, 04:45
  4. Alex Campos – Lenguaje de Amor (2010)[MU] + Biografia
    By Julian_07_ in forum Todo Musica
    Respuestas: 1
    Último mensaje: 07-oct-2010, 16:16
  5. Respuestas: 6
    Último mensaje: 20-dic-2009, 22:45

Normas de Publicación

  • No puedes crear nuevos temas
  • No puedes responder mensajes
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •