Foros del Web » Programando para Internet » Javascript »

sumar los valores de varios radiobuttons???

Estas en el tema de sumar los valores de varios radiobuttons??? en el foro de Javascript en Foros del Web. hola, necesito sumar los valores de un cuestionario y que vaya mostrando el resultado, como lo hago? tengo 10 preguntas y cada una tiene 6 ...
  #1 (permalink)  
Antiguo 17/02/2006, 03:46
 
Fecha de Ingreso: diciembre-2003
Mensajes: 120
Antigüedad: 20 años, 5 meses
Puntos: 0
Pregunta sumar los valores de varios radiobuttons???

hola, necesito sumar los valores de un cuestionario y que vaya mostrando el resultado, como lo hago?

tengo 10 preguntas y cada una tiene 6 radio butons para que se selecionen un valor en cada pregunta y al final necesito que me sume los radiobutons que han quedado marcados

Código:
<form name="test1">  
<td>pulsa un valor:</td>      
<td><input name="pregunta1" type="radio" value="6" id="p1_6"></td>
<td><input name="pregunta1" type="radio" value="5" id="p1_5"></td>
<td><input name="pregunta1" type="radio" value="4" id="p1_4"></td>
<td><input name="pregunta1" type="radio" value="3" id="p1_3"></td>
<td><input name="pregunta1" type="radio" value="2" id="p1_2"></td>
<td><input name="pregunta1" type="radio" value="1" id="p1_1"></td>
<td><input name="pregunta1" type="radio" value="0" id="p1_0"></td>

<td>pulsa otro valor:</td>
<td><input name="pregunta2" type="radio" value="6" id="p2_6"></td>
<td><input name="pregunta2" type="radio" value="5" id="p2_5"></td>
<td><input name="pregunta2" type="radio" value="4" id="p2_4"></td>
<td><input name="pregunta2" type="radio" value="3" id="p2_3"></td>
<td><input name="pregunta2" type="radio" value="2" id="p2_2"></td>
<td><input name="pregunta2" type="radio" value="1" id="p2_1"></td>
<td><input name="pregunta2" type="radio" value="0" id="p2_0"></td>
asi hasta 10 preguntas
y que aqui salga el resultado

Código:
<td>Resultado:</td>
<td>document.write(total);</td>
</form>
se me ocurre meter cada fila de radiobutons con el mismo name (para que solo pueda seleccionarse uno del 0 al 6) dentro de un array y que una funcion sume ese array.
asi con cada fila de radiobutons y luego una funcion total que sume los resultados de cada array y lo muestre, pero no se como!!!!

gracias y un saludo!
__________________
jorcri...

Última edición por jorcri; 17/02/2006 a las 07:01
  #2 (permalink)  
Antiguo 17/02/2006, 06:48
 
Fecha de Ingreso: diciembre-2003
Mensajes: 120
Antigüedad: 20 años, 5 meses
Puntos: 0
alguna idea, es posible el poder sumar los valores asignados a los radiobutons, ya que veo siempre que se les trata con el (true o false), no se si se pueden sumar los valores???

help me please!!!!
__________________
jorcri...
  #3 (permalink)  
Antiguo 17/02/2006, 07:01
Avatar de Amröd  
Fecha de Ingreso: febrero-2006
Mensajes: 9
Antigüedad: 18 años, 2 meses
Puntos: 0
Cuando tienes varios radios agrupados (mismo name) el value del grupo de radios es el q tenga aquel radio q este checked.

Si el usuario marca el segundo radio, el valor del grupo de radios sera 5 segun tu ejemplo.

No se si te refieres a eso...
  #4 (permalink)  
Antiguo 17/02/2006, 07:07
Avatar de pinchoso  
Fecha de Ingreso: octubre-2005
Ubicación: Barcelona
Mensajes: 177
Antigüedad: 18 años, 6 meses
Puntos: 0
Con esto te funcionara:

<script>
function calcula() {
var i
var total
total=0
for (i=1; i < 7; i++)
{
total = total + parseInt(document.form1['rad'+i].value)
}
document.write(total)
}
</script>
<form name="form1" method="post" action="">
<input name="rad" id="rad1" type="radio" value="1" >
<input name="rad" id="rad2" type="radio" value="1" >
<input name="rad" id="rad3" type="radio" value="1" >
<input name="rad" id="rad4" type="radio" value="1" >
<input name="rad" id="rad5" type="radio" value="1" >
<input name="rad" id="rad6" type="radio" value="1" >
<input name="" type="button" onClick="calcula()">
</form>

Saludos!
__________________

  #5 (permalink)  
Antiguo 17/02/2006, 08:21
 
Fecha de Ingreso: diciembre-2003
Mensajes: 120
Antigüedad: 20 años, 5 meses
Puntos: 0
bueno, gracias, mas o menos, pero no es asi:

digamos que tengo esta preguntas: los [] son radiobuttons y solo se puede seleciconar 1 por pregunta

1- pregunta1: 1[ ] | 2[x] | 3[ ]| 4[ ]
2- pregunta2: 1[ ] | 2[ ] | 3[x]| 4[ ]
3- pregunta3: 1[ ] | 2[x] | 3[ ]| 4[ ]
4- pregunta4: 1[x] | 2[ ] | 3[ ]| 4[ ]

total suma resultado= 8 por haber selecionado (2,3,2,1).

pensaba en un:

Código:
var totalform1
function SumarTest1(){
	total1=document.test1.t1_1.value+document.test1.t1_2.value+document.test1.t1_3.value+document.test1.t1_4.value;
     }
y luego en la celda de resultado:
Código:
<script>document.write(total1)</script>
gracias y un saludo!!!!
__________________
jorcri...
  #6 (permalink)  
Antiguo 17/02/2006, 10:21
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 19 años, 6 meses
Puntos: 4
Cita:
<html>
<head>
<script languaje="javascript">
function resultado(){
var fin="no";
var r=0;
x=1;
while(fin=="no"){
g=document.getElementsByName('p'+x);
if(g.length!=0){
for(y=0;y<g.length;y++){
e=0;
if (g[y].checked==true){
r+=parseInt(g[y].value);
e=1;
break;
}
}
if(e==0){
alert("Debe seleccionar al menos una opcion por grupo");
break;
break;
}
}else{
fin="si";
}
x++;
}
document.getElementById('resultadox').innerHTML="r esultado:"+r;
}
</script>
</head>
<body bgcolor="#E2E2E2">
<form name="fff">
<p>
<label> Pregunta1:
<input type="radio" name="p1" value="1">
1</label>
<label>
<input type="radio" name="p1" value="2">
2</label>
<label>
<input type="radio" name="p1" value="3">
3</label>
<label>
<input type="radio" name="p1" value="4">
4</label>
</p>
<p>
<label>Pregunta2:
<input type="radio" name="p2" value="1">
1</label>
<label>
<input type="radio" name="p2" value="2">
2</label>
<label>
<input type="radio" name="p2" value="3">
3</label>
<label>
<input type="radio" name="p2" value="4">
4</label>
</p>
<p>
<label>Pregunta3:
<input type="radio" name="p3" value="1">
1</label>
<label>
<input type="radio" name="p3" value="2">
2</label>
<label>
<input type="radio" name="p3" value="3">
3</label>
<label>
<input type="radio" name="p3" value="4">
4</label>
</p>
<p>
<label>Pregunta4:
<input type="radio" name="p4" value="1">
1</label>
<label>
<input type="radio" name="p4" value="2">
2</label>
<label>
<input type="radio" name="p4" value="3">
3</label>
<label>
<input type="radio" name="p4" value="4">
4</label>
</p>
<p><input name="ver" type="button" onClick="resultado()" value="Ver">
</p></form>
<br><br><div id="resultadox" align="center"></div>

</body>
</html>
saludos
__________________
by Capitán Buscapina
.
  #7 (permalink)  
Antiguo 17/02/2006, 12:53
 
Fecha de Ingreso: diciembre-2003
Mensajes: 120
Antigüedad: 20 años, 5 meses
Puntos: 0
amen, vendito seas Cap.Buscapina y gracias a todos los demas tambien.

iva mal encaminado, ahora lo veo mejor, gracias de nuevo!!!
__________________
jorcri...
  #8 (permalink)  
Antiguo 17/02/2006, 17:51
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 19 años, 6 meses
Puntos: 4
amen.

el Cardenal Capitan Buscapina te da la bendición.

saludos
__________________
by Capitán Buscapina
.
  #9 (permalink)  
Antiguo 18/02/2006, 11:17
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 19 años, 6 meses
Puntos: 4
Cita:
lo que quiero es que en vez de enviar esos resultados a esas celdas se envie tambien a otras celdas, pero con una diferencia, que a las segundas celdas que tienen que ir ya tienen un "id" asignado.
Cita:
<script languaje="javascript">
var ids_otrasceldas= new Array('pregunta1','pregunta2','pregunta3','pregunt a4');
function resultado(){
var fin="no";
var r=0;
x=1;
while(fin=="no"){
g=document.getElementsByName('p'+x);
if(g.length!=0){
for(y=0;y<g.length;y++){
e=0;
if (g[y].checked==true){
r+=parseInt(g[y].value);
document.getElementById(ids_otrasceldas[x-1]).innerHTML= "resultado para la celda con id("+ids_otrasceldas[x-1]+"):"+parseInt(g[y].value);
e=1;
break;
}
}
if(e==0){
alert("Debe seleccionar al menos una opcion por grupo");
break;
break;
}
}else{
fin="si";
}
x++;
}
document.getElementById('resultadox').innerHTML="r esultado:"+r;
}
</script>

el array que está en la primera linea, contiene los id de las celdas donde los quieres mostrar (en orden , el primer resultado en el preimer id de ese array)

y por supuesto, falta que le pongas esos id a las celdas que supongo ya tenes hechas.

espero sea lo que querías.
__________________
by Capitán Buscapina
.
  #10 (permalink)  
Antiguo 18/02/2006, 15:12
 
Fecha de Ingreso: diciembre-2003
Mensajes: 120
Antigüedad: 20 años, 5 meses
Puntos: 0
gracias de nuevo Cap.Buscapina, como siemrpe perfecto, bueno lo adapto mas o menos para mi script y es lo que necesitaba, otra cosilla

luego necesito que segun el resultado de la variable "total" que es la que usamos mas arriba para sacar el total y lo muestre en una celda, pues que dependiendo del resultado que tenga muestre un texto u otro en otra celda.

bueno habia pensado algo asi, (bueno esto es un ejemplo para probar), lo que tengo desarrollado es mas extenso, esto asi no me funciona, porque, me lo puedes explicar, veas el fallo o tendria que hacerlo de otra manera:

Código:
<html>
<head>

<title>prueba</title>
<script language="javascript" type="text/javascript">
function muestra(){

var total=50;

var texto1="aqui texto 1";
var texto2="aqui texto 2";
var texto3="aqui texto 3";
var texto4="aqui texto 4";
var texto5="aqui texto 5";
var texto6="aqui texto 6";

document.getElementById("sacalo").innerHTML="";
if(total=0){
document.getElementById("sacalo").innerHTML=texto1;
}else{
if(total>1 && total<=100){
document.getElementById("sacalo").innerHTML=texto2;
}else{
if(total>101 && total<=200){
document.getElementById("sacalo").innerHTML=texto3;
}else{
if(total>201 && total<=300){
document.getElementById("sacalo").innerHTML=texto4;
}else{
if(total>401&& total<=500){
document.getElementById("sacalo").innerHTML=texto5;
}else{
if(total>501&& total<=600){
document.getElementById("sacalo").innerHTML=texto6;
}else{
alert("no funciona");
}
}
}
}
</script>
</head>
<body>
<input name="muetralo" type="button" onClick="muestra();">
<table>
  <tr>
    <td id="sacalo"></td>
  </tr>
 </table>
</body>
</html>
gracias y otro saludete!!!
__________________
jorcri...

Última edición por jorcri; 18/02/2006 a las 15:34
  #11 (permalink)  
Antiguo 18/02/2006, 15:58
Avatar de Cap.Buscapina  
Fecha de Ingreso: octubre-2004
Ubicación: Argentina
Mensajes: 836
Antigüedad: 19 años, 6 meses
Puntos: 4
lo pongo nuevamente todo para que hagas solo copy&paste:

<html>
<head>

<title>prueba</title>
<script type="text/javascript">
function muestra(){
var total=50;
var texto1="aqui texto 1";
var texto2="aqui texto 2";
var texto3="aqui texto 3";
var texto4="aqui texto 4";
var texto5="aqui texto 5";
var texto6="aqui texto 6";

document.getElementById('m6').innerHTML="";
document.getElementById('m5').innerHTML="";
document.getElementById('m4').innerHTML="";
document.getElementById('m3').innerHTML="";
document.getElementById('m2').innerHTML="";
document.getElementById('m1').innerHTML="";

if(total==0){
document.getElementById('m1').innerHTML=texto1;
}else{
if(total>0 && total<=119){
document.getElementById('m2').innerHTML=texto2;
}else{
if(total>120 && total<=209){
document.getElementById('m3').innerHTML=texto3;
}else{
if(total>210 && total<=279){
document.getElementById('m4').innerHTML=texto4;
}else{
if(total>280 && total<=319){
document.getElementById('m5').innerHTML=texto5;
}else{
if(total>320 && total<=360){
document.getElementById('m6').innerHTML=texto6;
}else{
alert("no funciona");
}
}
}

}
}
}
}
</script>
</head>
<body>
<form>
<input name="muetralo" type="button" onClick="muestra()" value="mostrar">

</form>
<table>
<tr>
<td id="m1"></td>
</tr>
<tr>
<td id="m2"></td>
</tr>
<tr>
<td id="m3"></td>
</tr>
<tr>
<td id="m4"></td>
</tr>
<tr>
<td id="m5"></td>
</tr>
<tr>
<td id="m6"></td>
</tr>
</table>
</body>
</html>



solo el problema eran las } (llaves en mi jerga), el resto creo que todo bien.

suerte
__________________
by Capitán Buscapina
.
  #12 (permalink)  
Antiguo 20/02/2006, 02:23
 
Fecha de Ingreso: diciembre-2003
Mensajes: 120
Antigüedad: 20 años, 5 meses
Puntos: 0
gracias otra vez Cap.Buscapina, cierto, creo que ya cuando me faltan llaves ya es porque no distingo lo que es javascript de un helado de fresa, demasiadas horas delante del pc,

cuando termine esto lo metere en las faqs, creo que puede servirle a mas de uno, claro esta que en los creditos tu de protagonista principal, xDD!!!

un saludo!!!
__________________
jorcri...
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:01.