Foros del Web » Programando para Internet » Javascript »

Como recoger el valor de un radiobutton?

Estas en el tema de Como recoger el valor de un radiobutton? en el foro de Javascript en Foros del Web. Tengo un formulario que tiene 3 radiobuttons y mediante el method= post lo envio a otra pagina. Como recogo el valor que se ha seleccionado ...
  #1 (permalink)  
Antiguo 22/05/2004, 23:55
 
Fecha de Ingreso: septiembre-2003
Ubicación: Hispania
Mensajes: 56
Antigüedad: 21 años, 4 meses
Puntos: 0
Pregunta Como recoger el valor de un radiobutton?

Tengo un formulario que tiene 3 radiobuttons y mediante el method= post lo envio a otra pagina.
Como recogo el valor que se ha seleccionado en el radiobutton?
o dicho de otra forma, como almeceno ese valor en una variable?


Un saludo.
__________________
Dos cosas me admiran: la inteligencia de las bestias y la bestialidad de los hombres,
  #2 (permalink)  
Antiguo 23/05/2004, 03:18
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 11 meses
Puntos: 772
Hola, Stramonio.

Si tus radios son así:

<input type="radio" name="rad" value="1" />
<input type="radio" name="rad" value="2" />
<input type="radio" name="rad" value="3" />

Averiguas el valor con este código:
Código PHP:
    elem=document.getElementsByName('rad');
    for(
i=0;i<elem.length;i++)
        if (
elem[i].checked) {
            
valor elem[i].value;
            return;
        } 
Espero que te sirva. Saludos,
  #3 (permalink)  
Antiguo 23/05/2004, 08:38
 
Fecha de Ingreso: septiembre-2003
Ubicación: Hispania
Mensajes: 56
Antigüedad: 21 años, 4 meses
Puntos: 0
Pues no, no me funciona,
Me hago esta pagina de ejemplo:

Pagina 1.html

<body>
<form name="formulario" action="2.html" method="post">

<input type="radio" name="rad" value="1">Valor 1
<input type="radio" name="rad" value="2">Valor 2
<input type="radio" name="rad" value="3">Valor 3

<input type="submit" value="Buscar">
</body>

Pagina 2.html

<body>
<script>

elem=document.getElementsByName('rad');
for(i=0;i<elem.length;i++)
if (elem[i].checked) {
valor = elem[i].value;
return;
}

document.write(valor)
</script>
</body>


Me sale una ventanita que pone valor= no esta definido

He probado de varias formas y no hay manera, entiendo que ha de ser muy facil pero siempre tengo problemas con los radiobuttons, no me lo explico.

Un saludo al foro.

Ahhhhh, a ver si alguien me dice como es.
__________________
Dos cosas me admiran: la inteligencia de las bestias y la bestialidad de los hombres,
  #4 (permalink)  
Antiguo 23/05/2004, 08:44
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 4 meses
Puntos: 381
Qué tal,

lo que te propone javierB es para recoger los valores sin submitir el formulario.

Si lo que quieres es recogerlos en otra página, no puedes hacerlo mediante el método post. Necesitas usar get y entonces sí que puedes sacarlo de la url

Usando post debes usar algún lenguaje del lado del servidor
  #5 (permalink)  
Antiguo 23/05/2004, 12:01
 
Fecha de Ingreso: septiembre-2003
Ubicación: Hispania
Mensajes: 56
Antigüedad: 21 años, 4 meses
Puntos: 0
Vale gracias, si la verdad es que es una pagina php, lo que pasa que queria incluirle javascript.

Un saludo.
__________________
Dos cosas me admiran: la inteligencia de las bestias y la bestialidad de los hombres,
  #6 (permalink)  
Antiguo 23/05/2004, 12:59
 
Fecha de Ingreso: septiembre-2003
Ubicación: Hispania
Mensajes: 56
Antigüedad: 21 años, 4 meses
Puntos: 0
De todas formas sigue sin funcionar aun cambiando el method a get.

Con el mismo codigo de la respuesta anterior cambiando el method="get" ahora me sale una alerta que pone:

Se produjo un error en tiempo de ejecucion
¿Desea depurarlo?

Linea 8:
Error: La instruccion "return" esta fuera de una funcion


Un saludo,
__________________
Dos cosas me admiran: la inteligencia de las bestias y la bestialidad de los hombres,
  #7 (permalink)  
Antiguo 23/05/2004, 14:20
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 4 meses
Puntos: 381
Claro, es que yá te digo que la forma que te propuso javierB era para recogerlos del formulario sin haber sido enviado (es decir, que los datos se mantienen en el formulario)

Una vez submitido por el método get deben de sacarse de la url con métodos distintos.

sería algo tal que...

En la página de envío


<input type="radio" name="rad" value="1">Valor 1
<input type="radio" name="rad" value="2">Valor 2
<input type="radio" name="rad" value="3">Valor 3


Y en la página destino algo como....

<script language="javascript" type="text/javascript">
valor = location.search().substr(1).split("=")[1]
</script>

Ahí te quedará guardado en valor
  #8 (permalink)  
Antiguo 23/05/2004, 15:12
 
Fecha de Ingreso: septiembre-2003
Ubicación: Hispania
Mensajes: 56
Antigüedad: 21 años, 4 meses
Puntos: 0
Pues siento ser tan pesado, pero no me funciona, haber

Pagina 1

<body>
<form name="formulario" action="2.html" method="get">

<input type="radio" name="rad" value="1">Valor 1
<input type="radio" name="rad" value="2">Valor 2
<input type="radio" name="rad" value="3">Valor 3

<input type="submit" value="Buscar">
</body>

Pagina 2

<script language="javascript" type="text/javascript">
valor = location.search().substr(1).split("=")[1]
document.write(valor)

</script>

De todas formas tiene que ser algo en la 2ª pagina ya que en la barra de direcciones si veo que pasa el valor de rad=2 (si se selecciona el 2º radiobutton)

Gracias de antemano por todo, Un saludo
__________________
Dos cosas me admiran: la inteligencia de las bestias y la bestialidad de los hombres,
  #9 (permalink)  
Antiguo 24/05/2004, 02:44
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 23 años, 1 mes
Puntos: 61
Lo que no entiendo es por qué no usas el php. Si lo intentas verás que una vez se cargue la página 2 habrá una variable llamada $rad con el valor del radio elegido. Si quieres pasar ese valor a una variable JS sólo tienes que hacer:
Código PHP:
<script>
rad=<?echo $rad;?>;
</script>

Si no te funciona lo que te dijo tunait tal vez sea porque pases más variables. Prueba con esto. Ponlo en el head:
Código PHP:

igualdades
=location.search.split("&");

for(
a=0;a<valores.length;a++){
valores=igualdades[a].split("=");
}

for(
a=0;a<=valores.length;a+=2){
eval(
valores[a]+"="+valores[(a+1)]);


Y ya tendrás todos tus valores en variables.
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #10 (permalink)  
Antiguo 24/05/2004, 05:54
 
Fecha de Ingreso: septiembre-2003
Ubicación: Hispania
Mensajes: 56
Antigüedad: 21 años, 4 meses
Puntos: 0
Si tienes razon, he utilizado PHP y ya lo he soluccionado con el method POST, de esta forma:

//si la variable por post existe
if (isset($_POST['rad'])) $var = $_POST['rad'];
//sino le puedes dar hasta un valor default
else $var = "1";

No he utilizado JS, ya que era una tonteria, siendo una pagina PHP y poder utilizar codigo PHP

Un saludo y muchas gracias

__________________
Dos cosas me admiran: la inteligencia de las bestias y la bestialidad de los hombres,
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 01:35.