Foros del Web » Programando para Internet » Javascript »

sumar varios menu/list en un form

Estas en el tema de sumar varios menu/list en un form en el foro de Javascript en Foros del Web. hola, aguien q me pueda ayudar, tengo un form en mi pagina con 4 listas desplegables, q tienen en la opcion value el valor del ...
  #1 (permalink)  
Antiguo 09/01/2003, 21:23
Avatar de andresfh  
Fecha de Ingreso: noviembre-2002
Mensajes: 12
Antigüedad: 21 años, 5 meses
Puntos: 0
sumar varios menu/list en un form

hola, aguien q me pueda ayudar, tengo un form en mi pagina con 4 listas desplegables, q tienen en la opcion value el valor del producto, lo que quiero es q se sume el valor de los listbox que seleccione el usuario y se vea al fina el total de todos los productos q selecciono, y q este valor cambie en caso de que escojan otro valor de los listbox que se muestran

ojala haya sido claro, y me puedan ayudar
  #2 (permalink)  
Antiguo 09/01/2003, 23:01
Avatar de CORE
Usuario no validado
 
Fecha de Ingreso: abril-2002
Ubicación: Merida
Mensajes: 2.165
Antigüedad: 22 años, 1 mes
Puntos: 3
Chivi me ayudo a programar algo asi con PHP

http://web.urbano.com.mx/servicios/p...id=27&dominio=

mandale un mensaje para que te pase el codigo por que acabo de formatear mi maquina y perdi el codigo
  #3 (permalink)  
Antiguo 10/01/2003, 09:21
Avatar de andresfh  
Fecha de Ingreso: noviembre-2002
Mensajes: 12
Antigüedad: 21 años, 5 meses
Puntos: 0
pero es q estoy buscando una opcion q funcione en javascript, pq mi servidor no funciona con php
  #4 (permalink)  
Antiguo 10/01/2003, 09:46
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola andresfh:

Lo que voy a poner no lo he probado pero creo que podría funcionar:

Aunque hablas de un form, pienso que se puede haacer el sumatorio aplicado a cualquier otro tag...

El truco es hacer el sumatorio de todos los elementos select que hay en el interior de un tag...
... esa colección se consigue con "getElementsByTagName"
si el form tiene el tag sumatorio:
<form name=sumatorio...
<select name=loquesea value="n"...

...
</form>

Llamas al script sumatorio desde cualquier tag/evento que contenga algo así:

function sumatorio() {
var total = 0;
var los_select=document.form.sumatorio.getElementsByTa gName("select");
for (var i = 0; i < los_select.length; i ++) total += los_select[i].value;
return total;
}

Espero que te sirva...
Saludos
  #5 (permalink)  
Antiguo 10/01/2003, 12:57
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola, andresfh. Hola, caricatos.

Si se le pone el mismo nombre al form y a la función da error. He modificado un poco el código y quedaría así (he llamado "forma" al form porque soy muy original )
Código PHP:
function sumatorio() {
var 
total 0;
var 
los_select=document.forma.elements;
for (var 
0los_select.length++)
    if (
los_select[i].type=="select-one")
        
total += parseInt(los_select[i].value);
 return 
total;

Con esto aunque en el form haya más elementos solo sumará el valor de los select.

Espero que resulte últi. Saludos,
  #6 (permalink)  
Antiguo 10/01/2003, 14:06
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

He visto el código de JavierB (¡Hola Javi!) y por el comentario me di cuenta que quería poner "document.forms" ya que quise referenciar a la colección de etiquetas form del documento.

De todos modos, andresfh deberá decir si le sirve la solución, o quiere otra cosa.

Saludos
  #7 (permalink)  
Antiguo 11/01/2003, 21:30
Avatar de andresfh  
Fecha de Ingreso: noviembre-2002
Mensajes: 12
Antigüedad: 21 años, 5 meses
Puntos: 0
Hola, y gracias a todos, el codigo que utilice fue el de JavierB y funciono a las mil maravillas, hace todo lo que necesitaba que hicera!!


solo como comentario final, me podrian explicar que funcion tiene la funcion parseInt() en la linea:

total += parseInt(los_select[i].value);

de nuevo gracias por su colaboracion!!
  #8 (permalink)  
Antiguo 11/01/2003, 21:33
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Te explico:

La propiedad value de cualquier objeto retorna un valor de tipo string, es decir cadena de caracteres. Como lo que se desea es sumar los valores numéricos almacenados en esas cadenas, es preciso convertir a formato numérico primero.

parseInt("55") equivale al número 55.

Saludos.
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 09:07.