Foros del Web » Programando para Internet » Javascript »

Crear funcion que sume todos los campos por ID [Asesoramiento]

Estas en el tema de Crear funcion que sume todos los campos por ID [Asesoramiento] en el foro de Javascript en Foros del Web. Hola chicos, es posible crear (o utilizar una funcion existente), que sume todos los campos que tengan el mismo ID. Se sumar dos campos, pero ...
  #1 (permalink)  
Antiguo 01/02/2011, 13:46
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Crear funcion que sume todos los campos por ID [Asesoramiento]

Hola chicos, es posible crear (o utilizar una funcion existente), que sume todos los campos que tengan el mismo ID.

Se sumar dos campos, pero la funciona llama los campos que quiero que sume, yo quiero poner 100 campos, y solo los que complete se sumen es posible que un script, que levante todos los valores de todo el form cullo ID sea el mismo???

agradesco toda INFO o LINK al respecto... ;)
__________________
Mono programando!
twitter.com/eguimariano
  #2 (permalink)  
Antiguo 01/02/2011, 14:15
 
Fecha de Ingreso: diciembre-2009
Ubicación: Valparaíso
Mensajes: 118
Antigüedad: 14 años, 4 meses
Puntos: 3
Respuesta: Crear funcion que sume todos los campos por ID [Asesoramiento]

:/ si pones id = creo q no te va a correr...
debes recorrer el formulario ELEMENTO por ELEMENTO y comprobar si el value != "" si es verdadero lo sumas si no pasas al siguiente...
  #3 (permalink)  
Antiguo 01/02/2011, 14:19
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Crear funcion que sume todos los campos por ID [Asesoramiento]

No se debe crear campos con el mismo id, pues por naturaleza este debe ser único. Podrías asignar un id más un numero, ejemplo: campo_1 campo_2... campo_100, aunque no creo que esto te de lo que esperas, pues según dices, la suma o proceso se hará con aquellos que se completen, así que imagino que la condicionante es el contenido de los campos y no el id. Deberías aclarar un poco más qué deseas hacer.
  #4 (permalink)  
Antiguo 01/02/2011, 14:21
 
Fecha de Ingreso: diciembre-2009
Ubicación: Valparaíso
Mensajes: 118
Antigüedad: 14 años, 4 meses
Puntos: 3
Respuesta: Crear funcion que sume todos los campos por ID [Asesoramiento]

tienes razon en generar id del estilo "campo_x".... mira esto es basicamente lo q t digo
Código Javascript:
Ver original
  1. var cont = 0;
  2. for (i=0 ; i<document.forms[0].length ; i++){
  3.               if(document.forms[0].elements[i].value != ""){
  4.                        cont= cont+ document.forms[0].elements[i].value;
  5.                }
  6. }
  #5 (permalink)  
Antiguo 01/02/2011, 15:14
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Crear funcion que sume todos los campos por ID [Asesoramiento]

Bueno puedo poner lo siguiente..

La cantidad de campos, lo genera un script.
el campo por defecto (el primero) lo podriamos llamar

name="sub_1" id="sub_1"

a medida que generan campos un variable ya tienen el numero del proximo campo a crear

name="sub_2" id="sub_2"
name="sub_3" id="sub_3"
name="sub_4" id="sub_4"
name="sub_5" id="sub_5"

esta variable se llama indice, por defecto esta defenida en 2:

var indice=2;

Ahora lo que pregunta ocp001a....

....en aclarar que voy hacer...

es un form de compra, en donde compras un producto
lo que si no tiene limite de cantidad de lineas.

el calculo de cantidad por precio unitario esta echo, y te deja el valor en sub_1
ahora yo lo que necesito es tener un campo llamado total y dejar la suma de todos los sub.

espero dejar el panorama mas claro, y saber si puedo aplicar lo javiercitox...

espero su respuesta chicos :D
__________________
Mono programando!
twitter.com/eguimariano
  #6 (permalink)  
Antiguo 01/02/2011, 15:58
Avatar de mko
mko
 
Fecha de Ingreso: agosto-2010
Ubicación: la vida es un riesgo
Mensajes: 101
Antigüedad: 13 años, 8 meses
Puntos: 14
Respuesta: Crear funcion que sume todos los campos por ID [Asesoramiento]

bien, creo que ya te agarre la onda quiere sumar a final de la consulta el total neto de todos los subtotales si estoy en lo correcto es asi si no pos no entendi la la onda
:::::::::::::::::::::::::::::::::::::::

esto la cantidad total de ventas en base a una fecha de busqueda...modifica segun tu necesidad

aqui tu conoccion....



$registros=mysql_query("select compania,distribuidor,pieza,precio,can,fecha from VENTA WHERE fecha='$[fecha]'") or
die("Error de conexion");

if ($row = mysql_fetch_array($registros)){
$to=0;
echo "<table border='1'>";
echo "VENTAS DEL MES DE:<font size= '5' color='blue'>".$row["fecha"]."</font>";
echo "<tr>";
echo "<td><font size='2' color='black'>DISTRIBUIDOR</font></td>
<td><font size='2' color='black'>CVE_SEGURO</font></td>
<td><font size='2' color='black'>PIEZA</font></td>
<td><font size='2' color='black'>PRECIO</font></td>
<td><font size='2' color='black'>CAN</font></td>
<td><font size='2' color='black'>SUBTOTAL</font></td>";
echo "</tr>";
do {

echo "<tr>";
echo "<td><font size= '4' color='blue'>".$row["distribuidor"]."</font></td>
<td><font size= '4' color='blue'>".$row["compania"]."</font></td>
<td><font size= '4' color='blue'>".$row["pieza"]."</font></td>
<td><font size= '4' color='blue'>".$row["precio"]."</font></td>
<td><font size= '4' color='blue'>".$row["can"]."</font></td>
<td><font size= '4' color='blue'>".$sub=$row["precio"]*$row["can"]."</font></td>";
echo "</tr>";
$total += $sub;

} while ($row = mssql_fetch_array($registros));

echo "<tr>";
echo "<td><font size= '4' color='red'></font></td>
<td><font size= '4' color='red'></font></td>
<td><font size= '4' color='red'></font></td>
<td><font size= '4' color='red'></font></td>
<td><font size= '4' color='red'>TOTAL:</font></td>
<td><div align='right'><font size= '4' color='006600'>".$total."</font></div></td>
<td><font size= '4' color='blue'></font></td>";
echo "</tr>";

echo "</table> \n";
}






si te das cuanta

$total += $sub; lo que hace es acumular todos los subtotales


espero sea lo que buscabas
  #7 (permalink)  
Antiguo 01/02/2011, 16:29
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Crear funcion que sume todos los campos por ID [Asesoramiento]

mko si quiero sumar el total de todo los campos, pero no es una consulta, es javascript y es del lado del cliente, es un form de compra, y la idea es mostrar el total de la suma de los campos SUB, cada vez que se agrege un campo y se complete su interior, automaticamente se completa el campo SUB_[x] pero como no se cuantos SUB voy a tener, necesito una funcion que recalcule todos los sub cada vez que se llene un linea.
__________________
Mono programando!
twitter.com/eguimariano
  #8 (permalink)  
Antiguo 01/02/2011, 18:59
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Crear funcion que sume todos los campos por ID [Asesoramiento]

javiercitox la verdad no se como utilizar tu codigo
si bien apenas lo pege en mi codigo note que funciona pero tengo que retocarlo.
le agrege en rojo las toques que le di....
en total5 me pone todooooos los values del form, solo tendria que detallar que solo tome los input name="subt[x]" id="subt[x]"


Cita:
Iniciado por javiercitox Ver Mensaje
tienes razon en generar id del estilo "campo_x".... mira esto es basicamente lo q t digo
Código:
var cont = 0;
for (i=0 ; i<document.forms[0].length ; i++){
              if(document.forms[0].elements[i].value != ""){
                       cont= cont+ document.forms[0].elements[i].value;
               }
}
document.venta.total5.value=cont;
} 

un ejemplo como me completa el campo total5:

Código:
011111potato21.4364121211111potato21.4364121211111potato21.4364121211111potato21.4364121200011111potato21.4364121211111potato21.4364121211111potato21.436412120000011111potato21.4364121211111potato21.43641212000000011111potato21.43641212000000000000000000000000CancelarEmitirCancelarEmitirCancelarEmitirCancelarEmitirCancelarEmitirCancelarEmitirCancelarEmitirCancelarEmitirCancelarEmitir
__________________
Mono programando!
twitter.com/eguimariano
  #9 (permalink)  
Antiguo 02/02/2011, 08:17
 
Fecha de Ingreso: diciembre-2009
Ubicación: Valparaíso
Mensajes: 118
Antigüedad: 14 años, 4 meses
Puntos: 3
Respuesta: Crear funcion que sume todos los campos por ID [Asesoramiento]

puedes poner el html de tu codigo???
es una cosa de modificar el indice de elements en la función o bien llamarla por el id del elemento...
  #10 (permalink)  
Antiguo 02/02/2011, 08:39
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Crear funcion que sume todos los campos por ID [Asesoramiento]

Cita:
un ejemplo como me completa el campo total5:
es por que se está concadenando, en vez de sumando. usa parseInt
  #11 (permalink)  
Antiguo 02/02/2011, 11:56
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Crear funcion que sume todos los campos por ID [Asesoramiento]

Código HTML:
Ver original
  1. <title>Documento sin t&iacute;tulo</title>
  2. </head>
  3.  
  4. <table width="547">
  5.  
  6.  
  7.   <tr>
  8.     <td width="32"><input name="can1" type="text" id="can1" value="1" size="3" maxlength="2" autocomplete="off"/></td>
  9.     <td width="84"><input  name="cod1" type="text" id="cod1" size="14" maxlength="13" autocomplete="off" /></td>
  10.     <td width="330"><input  name="des1" type="text" id="des1" size="55" maxlength="50" autocomplete="off" readonly="readonly"/></td>
  11.     <td width="37"><input  name="uni1" type="text" id="uni1" size="6" maxlength="4" autocomplete="off" value="12" readonly="readonly"/></td>
  12.     <td width="40"><input  name="sub1" type="text" id="sub1" value="12" size="6" maxlength="5" readonly="readonly" autocomplete="off"/></td>
  13.   </tr>
  14.  
  15.     <tr>
  16.     <td><input  name="can2" type="text" id="can2" value="2" size="3" maxlength="2" autocomplete="off"/></td>
  17.     <td><input  name="cod2" type="text" id="cod2" size="14" maxlength="13" autocomplete="off"/></td>
  18.     <td><input  name="des2" type="text" id="des2" size="55" maxlength="50" autocomplete="off" readonly="readonly"/></td>
  19.     <td><input  name="uni2" type="text" id="uni2" size="6" maxlength="4" autocomplete="off" value="12" readonly="readonly"/></td>
  20.     <td><input  name="sub2" type="text" id="sub2" size="6" maxlength="5" value="24" readonly="readonly" autocomplete="off"/></td>
  21.   </tr>
  22.  
  23.     <tr>
  24.     <td><input  name="can3" type="text" id="can3" value="2" size="3" maxlength="2" autocomplete="off"/></td>
  25.     <td><input  name="cod3" type="text" id="cod3" size="14" maxlength="13" autocomplete="off"/></td>
  26.     <td><input  name="des3" type="text" id="des3" size="55" maxlength="50" autocomplete="off" readonly="readonly"/></td>
  27.     <td><input  name="uni3" type="text" id="uni3" size="6" maxlength="4" value="16" autocomplete="off"/></td>
  28.     <td><input  name="sub3" type="text" id="sub3" size="6" value="32" autocomplete="off"/></td>
  29.   </tr>
  30.  
  31.    <tr>
  32.     <td><input  name="can4" type="text" id="can4" size="3" maxlength="2" autocomplete="off"/></td>
  33.     <td><input  name="cod4" type="text" id="cod4" size="14" maxlength="13" autocomplete="off"/></td>
  34.     <td><input  name="des4" type="text" id="des4" size="55" maxlength="50" autocomplete="off" readonly="readonly"/></td>
  35.     <td><input  name="uni4" type="text" id="uni4" size="6" maxlength="4" autocomplete="off"/></td>
  36.     <td><input  name="sub4" type="text" id="sub4" size="6" value="0" autocomplete="off"/></td>
  37.   </tr>
  38.  
  39.    <tr>
  40.     <td><input  name="can5" type="text" id="can5" value="1" size="3" maxlength="2" autocomplete="off"/></td>
  41.     <td><input  name="cod5" type="text" id="cod5" size="14" maxlength="13" autocomplete="off"/></td>
  42.     <td><input  name="des5" type="text" id="des5" size="55" maxlength="50" autocomplete="off" readonly="readonly"/></td>
  43.     <td><input  name="uni5" type="text" id="uni5" size="6" maxlength="4" value="24" autocomplete="off"/></td>
  44.     <td><input  name="sub5" type="text" id="sub5" size="6" value="24" autocomplete="off"/></td>
  45.   </tr><tr>
  46.     <td></td>
  47.     <td></td>
  48.     <td></td>
  49.     <td></td>
  50.     <td><input type="text" name="total5" id="total5" size="6" value="0" autocomplete="off" readonly="readonly"/></td>
  51.   </tr>
  52. </body>
  53. </html>

Este es un ejemplo de como es el html, lo limpie lo mas posible para que se bien claro...

IsaBelM no se como poner parselnt (me imagino que la definicion de una variable).
Tenes algun ejemplo para mostrarme?
__________________
Mono programando!
twitter.com/eguimariano
  #12 (permalink)  
Antiguo 02/02/2011, 12:05
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Crear funcion que sume todos los campos por ID [Asesoramiento]

función parseInt()
  #13 (permalink)  
Antiguo 02/02/2011, 12:21
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Crear funcion que sume todos los campos por ID [Asesoramiento]

puse el parseInt() en el contador, y me dio esto:4681
dejo el script y una imagen aver si se entiende lo que estoy buscando, gracias por la mano
Código Javascript:
Ver original
  1. <script>
  2. function totall(totallll){
  3. var cont = 0;
  4. for (i=1 ; i<document.forms[0].length ; i++){
  5.               if(document.forms[0].elements[i].value != ""){
  6.                        cont= cont+ document.forms[0].elements[i].value;
  7.                }
  8. }
  9. document.venta.total5.value=parseInt(cont);
  10. }
  11. </script>
__________________
Mono programando!
twitter.com/eguimariano
  #14 (permalink)  
Antiguo 02/02/2011, 12:28
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Crear funcion que sume todos los campos por ID [Asesoramiento]

ak dejo un html de como va este tema, con un copy paste puede ver el problema.

:(
Código Javascript:
Ver original
  1. <html>
  2. <head>
  3. <title>Documento sin t&iacute;tulo</title>
  4. <script>
  5. function totall(totallll){
  6. var cont = 0;
  7. for (i=1 ; i<document.forms[0].length ; i++){
  8.               if(document.forms[0].elements[i].value != ""){
  9.                        cont= cont+ document.forms[0].elements[i].value;
  10.                }
  11. }
  12. document.venta.total5.value=parseInt(cont);
  13. }
  14. </script>
  15. </head>
  16.  
  17. <body>
  18. <form name="venta">
  19. <table width="547">
  20.  
  21.  
  22.   <tr>
  23.     <td width="32"><input name="can1" type="text" id="can1" value="1" size="3" maxlength="2" autocomplete="off"/></td>
  24.     <td width="84"><input  name="cod1" type="text" id="cod1" size="14" maxlength="13" autocomplete="off" /></td>
  25.     <td width="330"><input  name="des1" type="text" id="des1" size="55" maxlength="50" autocomplete="off" readonly="readonly"/></td>
  26.     <td width="37"><input  name="uni1" type="text" id="uni1" size="6" maxlength="4" autocomplete="off" value="12" readonly="readonly"/></td>
  27.     <td width="40"><input  name="sub1" type="text" id="sub1" value="12" size="6" maxlength="5" readonly="readonly" autocomplete="off"/></td>
  28.   </tr>
  29.  
  30.     <tr>
  31.     <td><input  name="can2" type="text" id="can2" value="2" size="3" maxlength="2" autocomplete="off"/></td>
  32.     <td><input  name="cod2" type="text" id="cod2" size="14" maxlength="13" autocomplete="off"/></td>
  33.     <td><input  name="des2" type="text" id="des2" size="55" maxlength="50" autocomplete="off" readonly="readonly"/></td>
  34.     <td><input  name="uni2" type="text" id="uni2" size="6" maxlength="4" autocomplete="off" value="12" readonly="readonly"/></td>
  35.     <td><input  name="sub2" type="text" id="sub2" size="6" maxlength="5" value="24" readonly="readonly" autocomplete="off"/></td>
  36.   </tr>
  37.  
  38.     <tr>
  39.     <td><input  name="can3" type="text" id="can3" value="2" size="3" maxlength="2" autocomplete="off"/></td>
  40.     <td><input  name="cod3" type="text" id="cod3" size="14" maxlength="13" autocomplete="off"/></td>
  41.     <td><input  name="des3" type="text" id="des3" size="55" maxlength="50" autocomplete="off" readonly="readonly"/></td>
  42.     <td><input  name="uni3" type="text" id="uni3" size="6" maxlength="4" value="16" autocomplete="off"/></td>
  43.     <td><input  name="sub3" type="text" id="sub3" size="6" value="32" autocomplete="off"/></td>
  44.   </tr>
  45.  
  46.    <tr>
  47.     <td><input  name="can4" type="text" id="can4" size="3" maxlength="2" autocomplete="off"/></td>
  48.     <td><input  name="cod4" type="text" id="cod4" size="14" maxlength="13" autocomplete="off"/></td>
  49.     <td><input  name="des4" type="text" id="des4" size="55" maxlength="50" autocomplete="off" readonly="readonly"/></td>
  50.     <td><input  name="uni4" type="text" id="uni4" size="6" maxlength="4" autocomplete="off"/></td>
  51.     <td><input  name="sub4" type="text" id="sub4" size="6" value="0" autocomplete="off"/></td>
  52.   </tr>
  53.  
  54.    <tr>
  55.     <td><input  name="can5" type="text" id="can5" value="1" size="3" maxlength="2" autocomplete="off"/></td>
  56.     <td><input  name="cod5" type="text" id="cod5" size="14" maxlength="13" autocomplete="off"/></td>
  57.     <td><input  name="des5" type="text" id="des5" size="55" maxlength="50" autocomplete="off" readonly="readonly"/></td>
  58.     <td><input  name="uni5" type="text" id="uni5" size="6" maxlength="4" value="24" autocomplete="off"/></td>
  59.     <td><input  name="sub5" type="text" id="sub5" size="6" value="24" autocomplete="off"/></td>
  60.   </tr><tr>
  61.     <td></td>
  62.     <td></td>
  63.     <td></td>
  64.     <td></td>
  65.     <td><input type="text" name="total5" id="total5" size="6" value="0" autocomplete="off" readonly="readonly"/></td>
  66.   </tr>
  67. </table>
  68. <input type="button" name="button" id="button" onClick="totall(total5);" value="Calcular">
  69.  
  70. </form>
  71. </body>
  72. </html>
__________________
Mono programando!
twitter.com/eguimariano
  #15 (permalink)  
Antiguo 02/02/2011, 12:53
 
Fecha de Ingreso: diciembre-2009
Ubicación: Valparaíso
Mensajes: 118
Antigüedad: 14 años, 4 meses
Puntos: 3
Respuesta: Crear funcion que sume todos los campos por ID [Asesoramiento]

Cita:
Iniciado por IsaBelM Ver Mensaje
gracias IsaBelM...

finalmente.....
Código Javascript:
Ver original
  1. <script>
  2. function total(){
  3. var cont = 0;
  4. for (i=4 ; i<document.forms[0].length ; i=i+5){
  5.               if(document.forms[0].elements[i].value != ""){
  6.                        cont= cont+parseInt( document.forms[0].elements[i].value);
  7.                }
  8. }
  9. document.forms[0].total5.value=cont;
  10. }
  11. </script>

era lo q te mencionaba, solo debias contar los campos de la ultima columna, para eso inicializo i en 4 y le voy sumando 5 ;)
  #16 (permalink)  
Antiguo 02/02/2011, 13:11
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Crear funcion que sume todos los campos por ID [Asesoramiento]

Cita:
Iniciado por javiercitox Ver Mensaje
gracias IsaBelM...

finalmente.....
Código Javascript:
Ver original
  1. <script>
  2. function total(){
  3. var cont = 0;
  4. for (i=4 ; i<document.forms[0].length ; i=i+5){
  5.               if(document.forms[0].elements[i].value != ""){
  6.                        cont= cont+parseInt( document.forms[0].elements[i].value);
  7.                }
  8. }
  9. document.forms[0].total5.value=cont;
  10. }
  11. </script>

era lo q te mencionaba, solo debias contar los campos de la ultima columna, para eso inicializo i en 4 y le voy sumando 5 ;)
Hola, hice esas modificaciones, y el script es detenido por IE por la demora, ademas cuelga todo el SO....
y por ende no tira el resultado :(
__________________
Mono programando!
twitter.com/eguimariano
  #17 (permalink)  
Antiguo 02/02/2011, 13:17
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Crear funcion que sume todos los campos por ID [Asesoramiento]

hice un copy paste y si funciona bien xD
__________________
Mono programando!
twitter.com/eguimariano
  #18 (permalink)  
Antiguo 02/02/2011, 13:48
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Crear funcion que sume todos los campos por ID [Asesoramiento]

Chicos, tengo un problemaaaaaaaaaaaaa!!!!
puse el script en la hoja original donde tengo muchisimos scripts....
y calcula pero invierte los numeros, un ejemplo

si calculo 12 y 12
me da 42 si calculo 12 solo me da 21....
todos los calculos que probe estan bien, solo que a los numeros dentro del campo que estamos contando, los invierte.....

para que quede claro...
al 12 me lo toma como 21....
que puede ser?, cambie el nombre de las variables para que no se confunda con otro script
__________________
Mono programando!
twitter.com/eguimariano
  #19 (permalink)  
Antiguo 02/02/2011, 14:31
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Crear funcion que sume todos los campos por ID [Asesoramiento]

Listo entendi mal el consepto, del codigo, ya lo solucione, tenia que tener en cuenta los campos hidden y anteriores al campo inicial a contar. xD gracias javiercitox
__________________
Mono programando!
twitter.com/eguimariano
  #20 (permalink)  
Antiguo 02/02/2011, 15:03
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Crear funcion que sume todos los campos por ID [Asesoramiento]

retocando un poco la función
Cita:
function total(){
var cont = 0;
for (var i=4, campo = document.forms[0]; i<campo.elements.length ; i+=5){
              if(campo.elements[i].value != "" || campo.elements[i].value != 0){
                       cont= cont + parseInt(campo.elements[i].value);
               }
}
document.forms[0].total5.value=cont;
}
  #21 (permalink)  
Antiguo 02/02/2011, 15:23
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Crear funcion que sume todos los campos por ID [Asesoramiento]

Cita:
Iniciado por IsaBelM Ver Mensaje
function total(){
var cont = 0;
for (var i=4, campo = document.forms[0]; i<campo.elements.length ; i+=5){
if(campo.elements[i].value != "" || campo.elements[i].value != 0){
cont= cont + parseInt(campo.elements[i].value);
}
}
document.forms[0].total5.value=cont;
}
y en que mejoro?
(para saber y entender mas)
__________________
Mono programando!
twitter.com/eguimariano
  #22 (permalink)  
Antiguo 02/02/2011, 15:44
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Crear funcion que sume todos los campos por ID [Asesoramiento]

ya no estás pidiendo una vez tras otra document.forms[0], ahora se guarda en una variable. en cuanto a la iteración no se si mejora el rendimiento, al menos no lo empeora
  #23 (permalink)  
Antiguo 02/02/2011, 15:50
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Crear funcion que sume todos los campos por ID [Asesoramiento]

Cita:
Iniciado por IsaBelM Ver Mensaje
ya no estás pidiendo una vez tras otra document.forms[0], ahora se guarda en una variable. en cuanto a la iteración no se si mejora el rendimiento, al menos no lo empeora
Lo probe en el embrollo de codigos y funcion 10 puntos xD
__________________
Mono programando!
twitter.com/eguimariano
  #24 (permalink)  
Antiguo 02/02/2011, 16:38
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Crear funcion que sume todos los campos por ID [Asesoramiento]

Hay un problema!!!!

el parseInt maneja numeros enteros, y tengo decimales con "."

3.5 lo toma como 3
si le saco parseInt toma el 3.5 por 03.55555
__________________
Mono programando!
twitter.com/eguimariano
  #25 (permalink)  
Antiguo 03/02/2011, 02:48
Avatar de mko
mko
 
Fecha de Ingreso: agosto-2010
Ubicación: la vida es un riesgo
Mensajes: 101
Antigüedad: 13 años, 8 meses
Puntos: 14
Respuesta: Crear funcion que sume todos los campos por ID [Asesoramiento]

cambia esto:
cont= cont + parseInt(campo.elements[i].value);

por esto y listo:
cont= cont + parseFloat(campo.elements[i].value);
  #26 (permalink)  
Antiguo 03/02/2011, 05:39
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Crear funcion que sume todos los campos por ID [Asesoramiento]

usa parseFloat() y toFixed() para la cantidad de decimales que quieres que se muestren
  #27 (permalink)  
Antiguo 03/02/2011, 12:12
Avatar de Huacho12  
Fecha de Ingreso: septiembre-2008
Ubicación: Isla Mujeres Q. Roo
Mensajes: 175
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: Crear funcion que sume todos los campos por ID [Asesoramiento]

Hola!!!!

Mira checa este ejemplo:

http://www.forosdelweb.com/f13/suma-...-total-882735/


Saludos
__________________
Solo se... que no se nada!!! 0_o
  #28 (permalink)  
Antiguo 03/02/2011, 15:06
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Crear funcion que sume todos los campos por ID [Asesoramiento]

gracias chicos!
__________________
Mono programando!
twitter.com/eguimariano

Etiquetas: asesoramiento, campos, funcion
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 14:17.