Foros del Web » Programando para Internet » Javascript »

sumar los checkbox

Estas en el tema de sumar los checkbox en el foro de Javascript en Foros del Web. alguien me podria ayudar con una suma de checkbox tengo una base de datos con el costo de cada uno y pos kiero ke al ...
  #1 (permalink)  
Antiguo 03/10/2008, 10:08
 
Fecha de Ingreso: septiembre-2008
Mensajes: 58
Antigüedad: 15 años, 8 meses
Puntos: 0
sumar los checkbox

alguien me podria ayudar con una suma de checkbox

tengo una base de datos con el costo de cada uno y pos kiero ke al presionarlos poes me los sume

componentes
|_| raton
|_| mouse
|_| teclado

software
|_| office
|_| windows


suma.: ______

es que tengo no tengo mucha idea sobre como hacerlo en javascript
bueno, sacar el valor de cada uno de la base de datos , para sumarlo,
la base ia la tengo
gracias
  #2 (permalink)  
Antiguo 03/10/2008, 10:13
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 7 meses
Puntos: 122
Respuesta: sumar los checkbox

Hola. Primero que nada, por faro escribe bien.

Con respecto a tu problema, lo mejor es que guardes los valores en campos de tipo hidden de otra manera tendrías que estar consultando la base de datos cada que se haga un cambio en los check box. Después es solo cosa de tomar los valores de los campos escondidos y sumarlos...
__________________
twitter: @imbuzu
  #3 (permalink)  
Antiguo 03/10/2008, 10:16
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
Respuesta: sumar los checkbox

O en vez de usar campos hidden usar directamente el atributo value del checkbox. Si buscas en el foro no hace mucho se habló de cómo hacerlo con radios, búscalo que seguro te dará una idea de cómo hacerlo.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #4 (permalink)  
Antiguo 03/10/2008, 10:27
 
Fecha de Ingreso: septiembre-2008
Mensajes: 58
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: sumar los checkbox

solamente, algun comando para relacionar o scar el costo

lo tengo asi mas o menos pero no se si funcione
<body>
<script type="text/javascript">
function valuechecked(checkbox) {
for (i=0; i<checkbox.length; i++) {
if (checkbox[i].checked) {
return checkbox[i].value;
}
}
}
function sumar() {
var suma = 0;
suma += parseInt(valuechecked(form2.instalacion));
suma += parseInt(valuechecked(form2.componentes));
document.getElementById('sumatotal').innerHTML = suma;
}
</script>
<form id="form4" name="form4" method="post" action="">
<input type="checkbox" name="instalacion" id="instalacion" value="<?php echo $row_costos['inst_office']; ?>"/>
<input type="checkbox" name="componentes" id="componentes" value="="<?php echo $row_costos['inst_mouse']; ?>"/>
<p>suma: <span id="sumatotal"></span> pesos</p>
</body>
  #5 (permalink)  
Antiguo 03/10/2008, 10:28
 
Fecha de Ingreso: septiembre-2008
Mensajes: 58
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: sumar los checkbox

jeje de echo sip, lo vi con radios mmm pero no eh podido hacerlo con los chekbox jeje
  #6 (permalink)  
Antiguo 03/10/2008, 10:31
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
Exclamación Respuesta: sumar los checkbox

Es que tu formulario se llama form4 y no form2 .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 03/10/2008, 10:37
 
Fecha de Ingreso: septiembre-2008
Mensajes: 58
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: sumar los checkbox

perdon en ves de form2 es 4
  #8 (permalink)  
Antiguo 03/10/2008, 10:47
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
Exclamación Respuesta: sumar los checkbox

Primero, tu función no estás llamando en ninguna parte, segundo que los checks como tienen nombres diferentes no son arrays como tal, por lo que para obtener su value solo necesitas comprobar una única vez y no con un bucle. O sea:
Código javascript:
Ver original
  1. valor = (document.formulario.checkbox.checked) ? parseInt(document.formulario.checkbox.value) : 0
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 03/10/2008, 11:25
 
Fecha de Ingreso: septiembre-2008
Mensajes: 58
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: sumar los checkbox

bueno ia me deje mejor lo de la base de datos, los valores los deje en el value del chekbox, y si funciona, si marco uno, me aparece su cantidad, pero si presiono marco otro, no cambia, no me ase la suma. me podrian dar un empujon con esto?

<body>
<script type="text/javascript">
function valuechecked(checkbox) {
for (i=0; i<checkbox.length; i++) {
if (checkbox[i].checked) {
return checkbox[i].value;
}
}
}
function sumar() {
var suma = 0;
suma += parseInt(valuechecked(form2.instalacion));
document.getElementById('algo').innerHTML = suma;
}
</script>
<form id="form2" name="form2" method="post" action="" >
<label>
<input name="instalacion" type="checkbox" id="instalacion" value="100" onclick="sumar()"/>
Escaneo D.D. </label>
<label>
<input type="checkbox" name="instalacion" id="instalacion" value="400" onclick="sumar()"/>
Respaldo Inf</label>
<label> <br />
<input name="instalacion" type="checkbox" id="instalacion" value="350" onclick="sumar()"/>
Windows</label>
<label> <br />
<input name="instalacion" type="checkbox" id="instalacion" value="300" onclick="sumar()"/>
Actualizacion</label>
<label>
<input name="instalacion" type="checkbox" id="instalacion" value="150" onclick="sumar()"/>
Controladores</label>
<label>
<input name="instalacion" type="checkbox" id="instalacion" value="200" onclick="sumar()"/>
Antivirus</label>
</form>
<p>Precio: <span id="algo"></span> euros</p>
</body>

jaja kreo ke me la complicaba con el otro jaja
  #10 (permalink)  
Antiguo 03/10/2008, 11:43
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
Exclamación Respuesta: sumar los checkbox

Primero, antes que nada, NO repitas el mismo id para varios elementos, el id debe ser único en el documento.

Y segundo, si te fijas, en el bucle cuando encuentre el primer checkbox seleccionado sale de la función (debido al return), lo que debes hacer es en vez de poner ese return dentro del bucle colocarlo fuera, y en lugar de él ir sumando en una variable los valores.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #11 (permalink)  
Antiguo 03/10/2008, 16:04
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 7 meses
Puntos: 122
Respuesta: sumar los checkbox

no leo todo, pero explico por que es mejor con los hidden. Es mejor simplemente por que es mas escalable. Pensé tambien en poner los valores en el value del check box, pero eso daría problemas si en el futuro queremos extender la aplicación para que envíe el valor de cada uno de los items ya que el value de los items seria su precio y no el item en si. Hay que pensar en varias cosas antes de ponerse dedos sobre las teclas. Algunas cosas a tener en cuenta son:

*Usabilida (por supuesto y no es coincidencia que lo ponga primero)
*Mantenimiento (Hay que pensar que hay que darle mantenimiento a nuestras aplicaciones de cuando en cuando)
*Accesibilidad (debería estar a la par de usabilidad o quizá mas arriba)
*Portabilidad (Es mejor escribir un componente que se pueda usar en mas de un proyecto aun si crees que no es probable que lo vallas a utilizar nuevamente en tu vida)
*Escalabilidad(Hay que tener en cuenta que, aun que al momento no lo parezca, todas las aplicaciones pueden requerir ser extendidas en el futuro, es mejor prever a tiempo que tener que reescribir la aplicación completa en un tiempo muy corto.)

Se me pasan mas cosas estoy seguro, pero esas son algunas de las mas importantes.

Saludos.
__________________
twitter: @imbuzu
  #12 (permalink)  
Antiguo 03/10/2008, 16:10
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
De acuerdo Respuesta: sumar los checkbox

Buena acotación, buzu. No había pensado desde esa perspectiva y tienes razón, ya que lo que serviría para diferenciar el ítem al enviar el formulario debería ser un id único y no el precio que puede ser igual en varios elementos. Aunque considerando que el precio lo vamos a usar únicamente en Javascript podríamos ponerlos directamente en un array .

Saludos .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #13 (permalink)  
Antiguo 03/10/2008, 16:26
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 7 meses
Puntos: 122
Respuesta: sumar los checkbox

Si, yo pensé lo mismo, pero no recuerdo por que no me decidí por el array. De cualquier modo quizá se podría incluso simular un loockup table para relacionar cada check box con su precio, pero creo que ya sería demasiado... Y como no recuerdo por que no elegí el array entonces diré que un array haría el trabajo...

Saludos.
__________________
twitter: @imbuzu
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 20:41.