Foros del Web » Programando para Internet » Javascript »

suma de elementos de un formulario

Estas en el tema de suma de elementos de un formulario en el foro de Javascript en Foros del Web. Hola , tengo un formulario donde calculo en unas cajas de texto el producto de un precio almacenado en un array por el nº de ...
  #1 (permalink)  
Antiguo 06/02/2006, 10:56
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 4 meses
Puntos: 19
suma de elementos de un formulario

Hola , tengo un formulario donde calculo en unas cajas de texto el producto de un precio almacenado en un array por el nº de unidades almacenado en otras cajas de texto , el problema es que al sumar el resultado no me sale correctamente
Código PHP:
<script language="javascript">
var 
precio=new Array(107.25,0,192.99,0,238.64,0,17.55,0,34.71,0,64.87,0,86.97,0,18.81,0,48.02,0,36.58,0,35.88,0,24.51,0,5.72,0,16.25,0,263.90,0,333.07,0,96.55,0,157.05,0,66.56,0,170.79);
var 
total=new Array(0);
function 
calcula(){
for(
i=1;i<40;i++){
var 
elemento=document.elformu.elements[i];
var 
nombre elemento.name;
if(
nombre.charAt(0)=="t"){
//alert(precio[i]);
document.elformu.elements[i].value=eval(document.elformu.elements[i-1].value*precio[i-1]);
total[0]=total[0]+document.elformu.elements[i].value
}//fin if
}//fin for
document.elformu.elements[41].value=total[0];
}
//fin funcion

</script> 
El valor de total[0] sale un string con todos los valores calculados... ¿?

lo tengo publicado en http://www.myjavaserver.com/~javcast...denador_p2.htm
  #2 (permalink)  
Antiguo 06/02/2006, 11:18
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Debajo de
var total=new Array(0);

pon
total[0]=0;

y cambia:
total[0]=total[0]+document.elformu.elements[i].value;
por:
total[0]+=parseFloat(document.elformu.elements[i].value);

__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #3 (permalink)  
Antiguo 06/02/2006, 11:42
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 4 meses
Puntos: 19
jejeje ...los despistes .Gracias por el apunte. Me distes la idea que me faltaba.
En lugar de un vector total que no pintaba nada puse simplemente uan variable total
y como tú bién indicabas la igualé a 0 y ya funciona.
Y en lugar de parseFloat usé un invento con parseInt
Código PHP:
<script language="javascript">

var 
precio=new Array(107.25,0,192.99,0,238.64,0,17.55,0,34.71,0,64.87,0,86.97,0,18.81,0,48.02,0,36.58,0,35.88,0,24.51,0,5.72,0,16.25,0,263.90,0,333.07,0,96.55,0,157.05,0,66.56,0,170.79);
function 
calcula(){
var 
total=0;
for(
i=1;i<40;i++){
var 
elemento=document.elformu.elements[i];
var 
nombre elemento.name;
if(
nombre.charAt(0)=="t"){
//alert(precio[i]);
document.elformu.elements[i].value=eval(document.elformu.elements[i-1].value*precio[i-1]);
//alert(total);
total=parseInt((total*1000))+parseInt((document.elformu.elements[i].value*1000));
total=total/1000;
}
//fin if
}//fin for
document.elformu.elements[41].value=total;
}
//fin funcion

</script> 
se ve en http://www.myjavaserver.com/~javcast...rdenador_p.htm
  #4 (permalink)  
Antiguo 06/02/2006, 11:56
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Te recomiendo que en vez de multiplicar por mil y aplicar el parseInt para luego dividirlo otra vez por mil, apliques directametne el parseFloat. Que es como el parseInt pero con números decimales...
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #5 (permalink)  
Antiguo 06/02/2006, 13:05
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 4 meses
Puntos: 19
Si , si sé la diferencia entre un int y un float ( entero y flotante o real ) lo que no sé es como se fija un nº de decimales constante .

Gracias y un saludo.
  #6 (permalink)  
Antiguo 08/03/2006, 10:51
Avatar de chepi  
Fecha de Ingreso: abril-2005
Ubicación: Posadas - Misiones
Mensajes: 116
Antigüedad: 19 años
Puntos: 1
Hola dogduck, te felicito por formulario. sería posible que me indicaras cómo lo haces?, porque yo tengo que hacer algo muy parecido pero no tengo idea de cómo hacerlo.
Muchas Gracias, y si no queres .... no hay problemas.
Besos
  #7 (permalink)  
Antiguo 08/03/2006, 11:03
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 4 meses
Puntos: 19
Tengo el ejemplo en:

http://myjavaserver.com/~javcasta/va...denador_p2.htm
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 02:42.