Foros del Web » Programando para Internet » Javascript »

Sumar array de select

Estas en el tema de Sumar array de select en el foro de Javascript en Foros del Web. Hola amigos: tengo esta funcion javascript : Código: function actualiza_apuesta() { sel_ganador = document.getElementById('boletos'); fijo = document.getElementById('fijo').value; boton = document.getElementById('apostar'); boletos1 = sel_ganador.options[sel_ganador.selectedIndex].value; importe = ...
  #1 (permalink)  
Antiguo 24/01/2010, 12:55
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 16 años, 3 meses
Puntos: 15
Sumar array de select

Hola amigos:

tengo esta funcion javascript:

Código:
function actualiza_apuesta() {
	sel_ganador = document.getElementById('boletos');
 	fijo = document.getElementById('fijo').value;
	boton = document.getElementById('apostar');
	boletos1 = sel_ganador.options[sel_ganador.selectedIndex].value;
	importe = (boletos1 * fijo);
	if(importe == 0) {
		boton.value = 'Seleccione para apostar';
	} else {
		boton.value = 'Apostar: Bs.' + importe;
	}
	
}
Pero quiero que cada vez que se seleccione un valor en cada select del array, se actualice el valor de la apuesta. No se como hacer esto. Son 7 select. Pueden darme alguna sugerencia.

Gracias.
__________________
Caminando con el corazón partío
  #2 (permalink)  
Antiguo 24/01/2010, 13:23
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: Sumar array de select

intenta a invocar la funcion en el evento onchange de los select.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 24/01/2010, 13:25
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 16 años, 3 meses
Puntos: 15
Respuesta: Sumar array de select

si es que ya la invoco alli y me muestra el valor del primer select en el boton perolo que quiero es sumar el valor de todos los select a medida que se van seleccionando.
__________________
Caminando con el corazón partío
  #4 (permalink)  
Antiguo 24/01/2010, 13:44
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: Sumar array de select

ahora entiendo. en la funcion tienes que tomar referencia de todos los selects y luego leer los valores para ir sumandolos todos. puedes usar la funcion getElementsByTagName para capturar todos los selects desde el formulario. la funcion te devuelve una coleccion el cual puedes iterar como un array. y partes de ahi para capturar los valores.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 24/01/2010, 13:54
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 16 años, 3 meses
Puntos: 15
Respuesta: Sumar array de select

gracias zerokilles, lo puse asi:

Código:
function actualiza_apuesta() {
	sel_ganador = document.getElementsByTagName('boleto');
	for ( var i = 0; i < boletos.length; i++ ) {
     // Ocultamos el select
     boletos[i].style.display = 'none';
}
pero no se como hacer para que me los sume y los muestre en la otra parte del código:

Código:
	fijo = document.getElementById('fijo').value;
	boton = document.getElementById('apostar');
	boletos1 = sel_ganador.options[sel_ganador.selectedIndex].value;
	importe = (boletos1 * fijo);
	if(importe == 0) {
		boton.value = 'Seleccione para apostar';
	} else {
		boton.value = 'Apostar: Bs.' + importe;
	}
	
}
__________________
Caminando con el corazón partío
  #6 (permalink)  
Antiguo 24/01/2010, 14:12
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: Sumar array de select

veamos si asi te funciona,
Código:
function actualiza_apuesta() {
for(var suma = 0, selects = document.getElementsByTagName('select'), i = 0; selects[i]; i++)
suma += Number(selects[i].value);
alert(suma); 
// la variable suma contiene el total de la suma de los selects;
// de aqui en adelante no se que queras hacer con él;

	sel_ganador = document.getElementById('boletos');
 	fijo = document.getElementById('fijo').value;
	boton = document.getElementById('apostar');
	boletos1 = sel_ganador.options[sel_ganador.selectedIndex].value;
	importe = (boletos1 * fijo);
	if(importe == 0) {
		boton.value = 'Seleccione para apostar';
	} else {
		boton.value = 'Apostar: Bs.' + importe;
	}
	
} 
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 24/01/2010, 14:35
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 16 años, 3 meses
Puntos: 15
Respuesta: Sumar array de select

Lo puse asi:

Código:
function actualiza_apuesta() {
	for(var suma = 0, selects = document.getElementsByTagName('select'), i = 0; 
	selects[i]; i++)
    suma += Number(selects[i].value);
	importe = (suma * 20.00);
	if(importe == 0) {
		boton.value = 'Seleccione para apostar';
	} else {
		boton.value = 'Apostar: Bs.' + importe;
	}
}
pero al tratar de mostrar en el boton la cantidad que se va acumulando, no me lo muestra, esta es la funcion:

Código:
function confirma_apuesta() {
	sel_ganador = document.getElementById('boleto');
	fijo = document.getElementById('fijo').value;
	boletos1 = sel_ganador.options[sel_ganador.selectedIndex].value;
	importe = (boletos1 * fijo);
	if(importe == 0) {
 		alert('Por favor seleccione la cantidad de boletos para apostar');
		return false
	} else {
		mensaje = '¿Desea apostar ' + boletos1 +  '\ncon un total de: Bs. ' + importe + '?';
		return confirm(mensaje);
	}
}
Estoy enredada porque no se mucho de javascript y hay muchas cosas que no entiendo.
__________________
Caminando con el corazón partío
  #8 (permalink)  
Antiguo 24/01/2010, 14:43
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: Sumar array de select

¿tienes algun documento en la web para poder revisarlo? adicional, verifica que error, si alguno, te indica la consola de errores del navegador.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #9 (permalink)  
Antiguo 24/01/2010, 15:30
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 16 años, 3 meses
Puntos: 15
Respuesta: Sumar array de select

No lo tengo en la web. lo que quisiers hacer es que despues que sume lo seleccionado lo muestre en este mensaje:

Código:
	if(importe == 0) {
 		alert('Por favor seleccione la cantidad de boletos para apostar');
		return false
	} else {
		mensaje = '¿Desea apostar ' + boletos1 +  '\ncon un total de: Bs. ' + importe + '?';
		return confirm(mensaje);
	}
pero no se cual es la variable que debo usar o como usarla (la que me trae la suma de los selects)

?????
__________________
Caminando con el corazón partío
  #10 (permalink)  
Antiguo 24/01/2010, 16:00
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: Sumar array de select

entiendo lo que quieres hacer, pero una cosa es querer algo y otra cosa es saber como tienes el codigo. esa es la parte que me interesa porque de lo contrario es muy dificil identificar el problema. de momento no tengo idea de que puede estar pasando y el codigo completo me ayudara a entenderlo.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #11 (permalink)  
Antiguo 24/01/2010, 17:57
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 16 años, 3 meses
Puntos: 15
Respuesta: Sumar array de select

Este es el codigo:

Código PHP:
<html>
<
head>
<
script language="JavaScript">
function 
actualiza_apuesta() {
    
sel_ganador document.getElementById('boleto');
     
fijo document.getElementById('fijo').value;
    
boton document.getElementById('apostar');
    
boletos1 sel_ganador.options[sel_ganador.selectedIndex].value;
    
importe = (boletos1 fijo);
    if(
importe == 0) {
        
boton.value 'Seleccione para apostar';
    } else {
        
boton.value 'Apostar: Bs.' importe;
    }
}

function 
confirma_apuesta() {
    
sel_ganador document.getElementById('boleto');
    
fijo document.getElementById('fijo').value;
    
boletos1 sel_ganador.options[sel_ganador.selectedIndex].value;
    
importe = (boletos1 fijo);
    if(
importe == 0) {
         
alert('Por favor seleccione la cantidad de boletos para apostar');
        return 
false
    
} else {
        
mensaje '¿Desea apostar ' boletos1 +  '\ncon un total de: Bs. ' importe '?';
        return 
confirm(mensaje);
    }
}
</script>
</head>
<body>
<form id="form1" name="form1" method="post" action="apostar.php" onSubmit="return confirma_apuesta()" >
<table><tr><td><table>
    <tr><td colspan="7">Nº </td></tr>
     <tr>
     <td><select name="posic[1][1]" id="posic[1]">
           <option value="0" selected="selected">0</option>
           <option value="1">1</option>
           <option value="2">2</option>
           <option value="3">3</option>
           <option value="4">4</option>
           <option value="5">5</option>
           <option value="6">6</option>
        </select></td>
        <td><select name="posic[2][2]" id="posic[2]">
           <option value="0" selected="selected">0</option>
           <option value="1">1</option>
           <option value="2">2</option>
           <option value="3">3</option>
           <option value="4">4</option>
           <option value="5">5</option>
           <option value="6">6</option>
       </select></td>
        <td><select name="posic[3][3]" id="posic[3]">
            <option value="0" selected="selected">0</option>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
            <option value="6">6</option>
         </select><td>
         <td><select name="posic[4][4]" id="posic[4]">
             <option value="0" selected="selected">0</option>
             <option value="1">1</option>
             <option value="2">2</option>
             <option value="3">3</option>
             <option value="4">4</option>
             <option value="5">5</option>
             <option value="6">6</option>
        </select></td>
         <td><select name="posic[5][5]" id="posic[5]">
             <option value="0" selected="selected">0</option>
             <option value="1">1</option>
             <option value="2">2</option>
             <option value="3">3</option>
             <option value="4">4</option>
             <option value="5">5</option>
             <option value="6">6</option>
          </select></td>
          <td><select name="posic[6][6]" id="posic[6]">
              <option value="0" selected="selected">0</option>
              <option value="1">1</option>
              <option value="2">2</option>
               <option value="3">3</option>
               <option value="4">4</option>
               <option value="5">5</option>
               <option value="6">6</option>
               </select></td>
         <td><select name="posic[7][7]" id="posic[7]">
                <option value="0" selected="selected">0</option>
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
                <option value="4">4</option>
                <option value="5">5</option>
                <option value="6">6</option>
                 </select></td></tr>
         <tr><td colspan="7">Boletos</td></tr>
           <tr>
           <td><select name="boleto[1][1]" id="boleto" onchange="actualiza_apuesta();">
             <option value="0" selected="selected">0</option>
             <option value="1">1</option>
             <option value="2">2</option>
             <option value="3">3</option>
             <option value="4">4</option>
             <option value="5">5</option>
             <option value="6">6</option>
             <option value="7">7</option>
             <option value="8">8</option>
             </select>
             <input id="fijo" name="fijo" type="hidden" value="20.00"></td>
    <td><select name="boleto[2][2]" id="boleto[2]" onchange="actualiza_apuesta();">
             <option value="0" selected="selected">0</option>
             <option value="1">1</option>
             <option value="2">2</option>
             <option value="3">3</option>
             <option value="4">4</option>
             <option value="5">5</option>
             <option value="6">6</option>
             <option value="7">7</option>
             <option value="8">8</option>
           </select>
    <input id="fijo" name="fijo" type="hidden" value="20.00"></td>
    <td><select name="boleto[3][3]" id="boleto[3]" onchange="actualiza_apuesta();">
             <option value="0" selected="selected">0</option>
             <option value="1">1</option>
             <option value="2">2</option>
             <option value="3">3</option>
             <option value="4">4</option>
             <option value="5">5</option>
             <option value="6">6</option>
             <option value="7">7</option>
             <option value="8">8</option>
             </select>
    <input id="fijo" name="fijo" type="hidden" value="20.00"></td>
    <td><select name="boleto[4][4]" id="boleto[4]" onchange="actualiza_apuesta();">
            <option value="0" selected="selected">0</option>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
            <option value="6">6</option>
            <option value="7">7</option>
            <option value="8">8</option>
            <option value="9">9</option>
            <option value="10">10</option>
            </select>
    <input id="fijo" name="fijo" type="hidden" value="20.00"></td>
    <td><select name="boleto[5][5]" id="boleto[5]" onchange="actualiza_apuesta();">
                                          <option value="0" selected="selected">0</option>
                                          <option value="1">1</option>
                                          <option value="2">2</option>
                                          <option value="3">3</option>
                                          <option value="4">4</option>
                                          <option value="5">5</option>
                                          <option value="6">6</option>
                                          <option value="7">7</option>
                                          <option value="8">8</option>
                                        </select>
    <input id="fijo" name="fijo" type="hidden" value="20.00"></td>
     <td><select name="boleto[6][6]" id="boleto[6]" onchange="actualiza_apuesta();">
                                          <option value="0" selected="selected">0</option>
                                          <option value="1">1</option>
                                          <option value="2">2</option>
                                          <option value="3">3</option>
                                          <option value="4">4</option>
                                          <option value="5">5</option>
                                          <option value="6">6</option>
                                          <option value="7">7</option>
                                          <option value="8">8</optio
                                        </select>
    <input id="fijo" name="fijo" type="hidden" value="20.00"></td>
     <td><select name="boleto[7][7]" id="boleto[7]" onchange="actualiza_apuesta();">
                                          <option value="0" selected="selected">0</option>
                                          <option value="1">1</option>
                                          <option value="2">2</option>
                                          <option value="3">3</option>
                                          <option value="4">4</option>
                                          <option value="5">5</option>
                                          <option value="6">6</option>
                                          <option value="7">7</option>
                                          <option value="8">8</option>
                                        </select>
    <input id="fijo" name="fijo" type="hidden" value="20.00"></td></tr>
       <tr><td colspan="7">
      <input name="submit" type="submit" id="apostar" value="Apostar"/>
       <input type="button" name="Submit2" value="Regresar" /></td></tr>
       </table></td></tr></table></form>
</body>
</html> 
__________________
Caminando con el corazón partío
  #12 (permalink)  
Antiguo 24/01/2010, 18:38
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 16 años, 3 meses
Puntos: 15
Respuesta: Sumar array de select

Ya lo resolvi!!! Muchas gracias zerokilled por tu valiosa ayuda.
__________________
Caminando con el corazón partío
  #13 (permalink)  
Antiguo 24/01/2010, 18:46
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: Sumar array de select

bueno, ya te adelantaste estaba en ello y la verdad opino que te estas complicando demasiado la vida y probablemente estas enfocando tus ideas de forma complicada. pienso que esto es lo que querias hacer pero tendrias que explicar cual es el proposito final, que aplicacion intentas hacer, y por que tantos selects.
Código:
function actualiza_apuesta() {
    sel_ganador = document.getElementById('boleto').parentNode.parentNode.getElementsByTagName('select');
     fijo = document.getElementById('fijo').value;
    boton = document.getElementById('apostar');
    boletos1 = 0; //sel_ganador.options[sel_ganador.selectedIndex].value;
for(var i = 0; sel_ganador[i]; i++)boletos1 += Number(sel_ganador[i].value);
	    importe = (boletos1 * fijo);
    if(importe == 0) {
        boton.value = 'Seleccione para apostar';
    } else {
        boton.value = 'Apostar: Bs.' + importe;
    }
}

function confirma_apuesta() {
    sel_ganador = document.getElementById('boleto').parentNode.parentNode.getElementsByTagName('select');
    fijo = document.getElementById('fijo').value;
    boletos1 = 0; //sel_ganador.options[sel_ganador.selectedIndex].value;
for(var i = 0; sel_ganador[i]; i++)boletos1 += Number(sel_ganador[i].value);
    importe = (boletos1 * fijo);
    if(importe == 0) {
         alert('Por favor seleccione la cantidad de boletos para apostar');
        return false
    } else {
        mensaje = '¿Desea apostar ' + boletos1 +  '\ncon un total de: Bs. ' + importe + '?';
        return confirm(mensaje);
    }
}
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #14 (permalink)  
Antiguo 26/01/2010, 07:23
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 16 años, 3 meses
Puntos: 15
Respuesta: Sumar array de select

Resulta que ahora no me funciona ni el que yo hice ni el sugerido. Este es el que yo hice:

Código:
function actualiza_apuesta() {
for(var suma = 0, selects = document.getElementsByTagName('select'), i = 0; selects[i]; i++)
suma += Number(selects[i].value);
//	sel_ganador = document.getElementById('boleto');
 	fijo = document.getElementById('fijo').value;
	boton = document.getElementById('apostar');
//	boletos1 = sel_ganador.options[sel_ganador.selectedIndex].value;
	importe = (suma * fijo);
	if(importe == 0) {
		boton.value = 'Seleccione para apostar';
	} else {
		boton.value = 'Apostar: Bs.' + importe;
	}
	
}

function confirma_apuesta() {
for(var suma = 0, selects = document.getElementsByTagName('select'), i = 0; selects[i]; i++)
suma += Number(selects[i].value);

	//sel_ganador = document.getElementById('boleto');
	fijo = document.getElementById('fijo').value;
//	boletos1 = sel_ganador.options[sel_ganador.selectedIndex].value;
	importe = (suma * fijo);
	if(importe == 0) {
 		alert('Por favor seleccione la cantidad de boletos para apostar');
		return false
	} else {
		mensaje = '¿Desea apostar un total de: Bs. ' + importe + '?';
		return confirm(mensaje);
	}
}
El problema es que tengo una array de select que es para escoger unos caballos que se llama posic y otro que es para escoger la cantidad de boletos que se llama boleto.

Los selects que quiero sumar son los del array de boleto pero de esta manera me los suma todos. Me imagino que cuando le digo esto document.getElementsByTagName('select') el asume todos los select. Lo que quisiera es poder decirle que solo escoga los select boleto para la suma.

Alguna idea??? Gracias.
__________________
Caminando con el corazón partío
  #15 (permalink)  
Antiguo 26/01/2010, 12:27
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: Sumar array de select

Cita:
Me imagino que cuando le digo esto document.getElementsByTagName('select') el asume todos los select.
es correcto. la funcion getElementsByTagName es heredado por los tipos de datos Elements y el objeto document es uno de ellos. la funcion devuelve una cantidad de elementos de acuerdo al elemento donde se a invocado. en este caso, document es el elemento mas alto de la jerarquia y por ende busca en todo el documento HTML. por eso, en mi codigo de sugerencia debiste haberte fijado la forma en que he invocado la funcion getElementsByTagName.
Código:
    sel_ganador = document.getElementById('boleto').parentNode.parentNode.getElementsByTagName('select');
el codigo se interpreta de la siguiente manera: buscar todos los elementos SELECTs desde el padre del padre del elemento #boleto. es decir, el elemento #boleto es el primer select de la lista Boletos. al subir dos veces en la jerarquia el elemento final es el TR que contiene todos los select de boletos.

ya revise el codigo que te sugeri y me funciona correctamente, al menos en firefox. por otro lado, te sugiero que enfoques tus ideas de otra forma y vuelvas a escribir el codigo desde cero. pero mas importante, tienes varios errores. el que me recuerdo ahora mismo son los elementos INPUTs hidden con ID fijo. en HTML mas de un elemento no puede contener el mismo valor para ID. por otro lado, no comprendo por que definir varios INPUTs hidden con el mismo valor. si cada uno tendra un valor diferente, pues bien no hay problema. pero si todos obtienen el mismo valor, lo veo inutil.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #16 (permalink)  
Antiguo 26/01/2010, 12:38
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 16 años, 3 meses
Puntos: 15
Respuesta: Sumar array de select

que bueno zerokilled que estas aqui. Pero es que la funcion que me indicaste no me funciona, no me realiza la suma en el boton apuesta. Dejé un solo hidden con el valor fijo y acomode los select porque eran incorrectos, ahora son asi:

Código:
<select name="boleto1" id="boleto1" onchange="actualiza_apuesta();">
<select name="boleto2" id="boleto2" onchange="actualiza_apuesta();">
etc...
no se que me falta...
__________________
Caminando con el corazón partío
  #17 (permalink)  
Antiguo 26/01/2010, 12:43
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: Sumar array de select

por supuesto que deja de funcionar si le cambias los valores de los atributos o si cambias la estructura del documento. tienes que mostrar nuevamente como ha quedado el codigo HTML.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #18 (permalink)  
Antiguo 26/01/2010, 12:57
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 16 años, 3 meses
Puntos: 15
Respuesta: Sumar array de select

Quedó asi:

Código PHP:
<html>
<
body>
<
form id="form1" name="form1" method="post" action="apostar.php" onSubmit="return confirma_apuesta()" >
<
table><tr><td><table>
    <
tr><td colspan="7">Nº </td></tr>
     <
tr>
     <
td><select name="posic1" id="posic1">
           <
option value="0" selected="selected">0</option>
           <
option value="1">1</option>
           <
option value="2">2</option>
           <
option value="3">3</option>
           <
option value="4">4</option>
           <
option value="5">5</option>
           <
option value="6">6</option>
        </
select></td>
        <
td><select name="posic2" id="posic2">
           <
option value="0" selected="selected">0</option>
           <
option value="1">1</option>
           <
option value="2">2</option>
           <
option value="3">3</option>
           <
option value="4">4</option>
           <
option value="5">5</option>
           <
option value="6">6</option>
       </
select></td>
        <
td><select name="posic3" id="posic3">
            <
option value="0" selected="selected">0</option>
            <
option value="1">1</option>
            <
option value="2">2</option>
            <
option value="3">3</option>
            <
option value="4">4</option>
            <
option value="5">5</option>
            <
option value="6">6</option>
         </
select><td>
         <
td><select name="posic4" id="posic4">
             <
option value="0" selected="selected">0</option>
             <
option value="1">1</option>
             <
option value="2">2</option>
             <
option value="3">3</option>
             <
option value="4">4</option>
             <
option value="5">5</option>
             <
option value="6">6</option>
        </
select></td>
         <
td><select name="posic5" id="posic5">
             <
option value="0" selected="selected">0</option>
             <
option value="1">1</option>
             <
option value="2">2</option>
             <
option value="3">3</option>
             <
option value="4">4</option>
             <
option value="5">5</option>
             <
option value="6">6</option>
          </
select></td>
          <
td><select name="posic6" id="posic6">
              <
option value="0" selected="selected">0</option>
              <
option value="1">1</option>
              <
option value="2">2</option>
               <
option value="3">3</option>
               <
option value="4">4</option>
               <
option value="5">5</option>
               <
option value="6">6</option>
               </
select></td>
         <
td><select name="posic7" id="posic7">
                <
option value="0" selected="selected">0</option>
                <
option value="1">1</option>
                <
option value="2">2</option>
                <
option value="3">3</option>
                <
option value="4">4</option>
                <
option value="5">5</option>
                <
option value="6">6</option>
                 </
select></td></tr>
         <
tr><td colspan="7">Boletos</td></tr>
           <
tr>
           <
td><select name="boleto1" id="boleto1" onchange="actualiza_apuesta();">
             <
option value="0" selected="selected">0</option>
             <
option value="1">1</option>
             <
option value="2">2</option>
             <
option value="3">3</option>
             <
option value="4">4</option>
             <
option value="5">5</option>
             <
option value="6">6</option>
             <
option value="7">7</option>
             <
option value="8">8</option>
             </
select>
             <
input id="fijo" name="fijo" type="hidden" value="20.00"></td>
    <
td><select name="boleto2" id="boleto2" onchange="actualiza_apuesta();">
             <
option value="0" selected="selected">0</option>
             <
option value="1">1</option>
             <
option value="2">2</option>
             <
option value="3">3</option>
             <
option value="4">4</option>
             <
option value="5">5</option>
             <
option value="6">6</option>
             <
option value="7">7</option>
             <
option value="8">8</option>
           </
select>
</
td>
    <
td><select name="boleto3" id="boleto3" onchange="actualiza_apuesta();">
             <
option value="0" selected="selected">0</option>
             <
option value="1">1</option>
             <
option value="2">2</option>
             <
option value="3">3</option>
             <
option value="4">4</option>
             <
option value="5">5</option>
             <
option value="6">6</option>
             <
option value="7">7</option>
             <
option value="8">8</option>
             </
select>
    </
td>
    <
td><select name="boleto4" id="boleto4" onchange="actualiza_apuesta();">
            <
option value="0" selected="selected">0</option>
            <
option value="1">1</option>
            <
option value="2">2</option>
            <
option value="3">3</option>
            <
option value="4">4</option>
            <
option value="5">5</option>
            <
option value="6">6</option>
            <
option value="7">7</option>
            <
option value="8">8</option>
            </
select>
    </
td>
    <
td><select name="boleto5" id="boleto5" onchange="actualiza_apuesta();">
                                          <
option value="0" selected="selected">0</option>
                                          <
option value="1">1</option>
                                          <
option value="2">2</option>
                                          <
option value="3">3</option>
                                          <
option value="4">4</option>
                                          <
option value="5">5</option>
                                          <
option value="6">6</option>
                                          <
option value="7">7</option>
                                          <
option value="8">8</option>
                                        </
select>
    
5</td>
     <
td><select name="boleto6" id="boleto6" onchange="actualiza_apuesta();">
                                          <
option value="0" selected="selected">0</option>
                                          <
option value="1">1</option>
                                          <
option value="2">2</option>
                                          <
option value="3">3</option>
                                          <
option value="4">4</option>
                                          <
option value="5">5</option>
                                          <
option value="6">6</option>
                                          <
option value="7">7</option>
                                          <
option value="8">8</optio
                                        
</select>
   </
td>
     <
td><select name="boleto7" id="boleto7" onchange="actualiza_apuesta();">
                                          <
option value="0" selected="selected">0</option>
                                          <
option value="1">1</option>
                                          <
option value="2">2</option>
                                          <
option value="3">3</option>
                                          <
option value="4">4</option>
                                          <
option value="5">5</option>
                                          <
option value="6">6</option>
                                          <
option value="7">7</option>
                                          <
option value="8">8</option>
                                        </
select>
    </
td></tr>
       <
tr><td colspan="7">
      <
input name="submit" type="submit" id="apostar" value="Apostar"/>
       <
input type="button" name="Submit2" value="Regresar" /></td></tr>
       </
table></td></tr></table></form>
</
body>
</
html
__________________
Caminando con el corazón partío
  #19 (permalink)  
Antiguo 26/01/2010, 13:14
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: Sumar array de select

sin hacer mucho cambio, en el codigo que te sugeri ubica el siguiente fragmento getElementById('boleto') (hay dos instancias de ese fragmento, una en cada funcion) y donde dice boleto escribes boleto1.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #20 (permalink)  
Antiguo 26/01/2010, 13:28
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 16 años, 3 meses
Puntos: 15
Respuesta: Sumar array de select

si ya lo habia colocado asi pero solo me lo hace para el primer select????
__________________
Caminando con el corazón partío
  #21 (permalink)  
Antiguo 26/01/2010, 13:47
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: Sumar array de select

aunque te esta tomando el primer select, al final se capturan todos los select. en este caso, el unico proposito de tomar el primer select es para tener una forma rapida de acceder a los elementos padre de dicho select. entonces, a partir del padre se toman el resto de los SELECTs boletos. tal como te lo explique en respuestas anteriores, parentNode.parentNode. otra forma que lo puedes hacer es asignandole un ID al elemento TR que contiene todas los SELECTs boletos y luego captura los elementos SELECTs a partir del TR. es lo mismo que la solucion actual porque parentNode.parentNode hace referencia al elemento TR.

Código:
<tr id="selects_boleto">
<!-- aqui dentro estan todos los selects -->
</tr>

// en la funcion;
// document.getElementById("selects_boletos") y document.getElementById("boleto1").parentNode.parentNode son el mismo elemento;
selects = document.getElementById("selects_boletos").getElementsByTagName("select");
selects contiene todos los elementos SELECT a partir de la referencia tomada por ID #selects_boletos. realmente no tiene mucha diferencia con el codigo actual, lo unico que cambia es a partir de donde se comienza la referencia. en el primer caso, yo parti desde #boleto1 porque: el elemento TR no tiene ningun valor para identificarse, y #boleto1 es el elemento mas cercano a la fila que contiene todos los SELECTs boletos.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #22 (permalink)  
Antiguo 26/01/2010, 14:04
Avatar de kimmy  
Fecha de Ingreso: julio-2008
Mensajes: 841
Antigüedad: 16 años, 3 meses
Puntos: 15
Respuesta: Sumar array de select

no me da de ninguna de las dos formas. El problema es que en el boton apostar:

Código HTML:
<input name="submit" type="submit" id="apostar" value="Apostar"/> 
debería mostrarse esto:

Apostar Bs. X (por ejemplo Bs. 40) que viene de mostrar la seleccion de uno de los valores del select * el valor fijo. Luego al seleccionar el otro select se incrementa esto por ejemplo Apostar Bs. 80, porque se multiplica el valor fijo por la suma de los dos select y asi hasta llegar al select 7. El codigo anterior lo hacia pero el problema es que tomaba todos los selects del form (es decir el posic y el boleto). Este era el otro codigo:

Código HTML:
function actualiza_apuesta() {
for(var suma = 0, selects = document.getElementsByTagName('select'), i = 0; selects[i]; i++)
suma += Number(selects[i].value);
//	sel_ganador = document.getElementById('boleto');
 	fijo = document.getElementById('fijo').value;
	boton = document.getElementById('apostar');
//	boletos1 = sel_ganador.options[sel_ganador.selectedIndex].value;
	importe = (suma * fijo);
	if(importe == 0) {
		boton.value = 'Seleccione para apostar';
	} else {
		boton.value = 'Apostar: Bs.' + importe;
	}
	
}

function confirma_apuesta() {
for(var suma = 0, selects = document.getElementsByTagName('select'), i = 0; selects[i]; i++)
suma += Number(selects[i].value);

	//sel_ganador = document.getElementById('boleto');
	fijo = document.getElementById('fijo').value;
//	boletos1 = sel_ganador.options[sel_ganador.selectedIndex].value;
	importe = (suma * fijo);
	if(importe == 0) {
 		alert('Por favor seleccione la cantidad de boletos para apostar');
		return false
	} else {
		mensaje = '¿Desea apostar un total de: Bs. ' + importe + '?';
		return confirm(mensaje);
	}
}
????
__________________
Caminando con el corazón partío
  #23 (permalink)  
Antiguo 26/01/2010, 14:12
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 6 meses
Puntos: 1485
Respuesta: Sumar array de select

Cita:
El codigo anterior lo hacia pero el problema es que tomaba todos los selects del form (es decir el posic y el boleto).
te lo he venido explicando desde hace varios post. se debe a que en tu codigo estas invocando getElementsByTagName desde el objeto document. en el codigo que te habia sugerido solo toma los selects a partir de un elemento en particular, la fila que contiene todos los selects boletos. si copias el codigo que te sugeri, y le haces el cambio que te indique en respuestas anteriores (cambiar boleto por boleto1), veras que te funciona tal como lo necesitas.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Etiquetas: select
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 17:19.