Foros del Web » Programando para Internet » Javascript »

paso de parametros CheckBox

Estas en el tema de paso de parametros CheckBox en el foro de Javascript en Foros del Web. Hola. Tengo una duda de como pasar el valor de un checbox mediante un boton de tipo button. Serian x ejem 3 checkbox y un ...
  #1 (permalink)  
Antiguo 13/03/2007, 05:43
 
Fecha de Ingreso: enero-2007
Mensajes: 284
Antigüedad: 17 años, 3 meses
Puntos: 1
paso de parametros CheckBox

Hola.

Tengo una duda de como pasar el valor de un checbox mediante un boton de tipo button.
Serian x ejem 3 checkbox y un boton:

<form name="form1" method="post" action="">
<p>coche
<input name="op" type="radio" value="coche">
</p>
<p>moto
<input name="op" type="radio" value="moto">
</p>
<p>avion
<input name="op" type="radio" value="avion">
</p>
<p>
<input type="button" name="Submit" value="Botón" onClick="">
</p>
</form>

Que hay que poner en onClick para que pase el valor del checbox?

Gracias.
  #2 (permalink)  
Antiguo 13/03/2007, 06:15
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 5 meses
Puntos: 144
Re: paso de parametros CheckBox

En principio no tienes porqué poner algo en el onClick (ni siquiera el onclick vacío).

¿Te has fijado que no recuperas el valor del radio, porque en el action no hay nada?.

Salu2
  #3 (permalink)  
Antiguo 13/03/2007, 06:30
 
Fecha de Ingreso: enero-2007
Mensajes: 284
Antigüedad: 17 años, 3 meses
Puntos: 1
Re: paso de parametros CheckBox

Si que me he fijado que no hay nada en el action.
Lo que pasa que necesito pasar el valor mediante el onClick (boton de tipo button).
Mediante el action ya se como va y funciona bien, pero necesito hacerlo para mi web con el onclick

Gracias.
  #4 (permalink)  
Antiguo 13/03/2007, 10:38
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: paso de parametros CheckBox

Hola baditxuk

No entiendo lo que necesitas. ¿Donde quieres pasar el valor y como vas a recogerlo? ¿Cómo quieres pasar el valor sin enviar el formulario, por url?

Saludos,
  #5 (permalink)  
Antiguo 13/03/2007, 13:44
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: paso de parametros CheckBox

En el atributo onclick podrías generar una url según en el caso en el que te encuentres:
siguiente.htm?check1=false&check2=true&check3=false
y cambias esos valores de false a true según estén seleccionados los checkboxes o no.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #6 (permalink)  
Antiguo 14/03/2007, 03:42
 
Fecha de Ingreso: enero-2007
Mensajes: 284
Antigüedad: 17 años, 3 meses
Puntos: 1
Re: paso de parametros CheckBox

Lo quiero pasar por url y recogerlos con el request.QueryString()
dentro del boton:

<input name="Submit" type="button" onClick="opcion.asp?op=.....">
donde el valor del op tiene que ser el valor del checkbox.

Lo que me comentas derkenuke de poner a true y a false no me vale xq hay veces que hay 3 campos de opcion, otras veces 4, otras 5,...dependiendo de un valor que saco de la BD.

Gracias.
  #7 (permalink)  
Antiguo 14/03/2007, 04:20
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: paso de parametros CheckBox

Hola:

Supongo que al no haber un action envías el form a la misma página... si es así, valdría simplemente un botón submit y la opción se asigna sola...

De todos modos lo que quieres sería así:

<input name="Submit" type="button" onclick="opcion.asp?op=" + op.value...

Pero si esa cadena no la asignas a una variable o un control del formulario no tiene sentido, y seguramente provocará un error.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Última edición por caricatos; 14/03/2007 a las 04:20 Razón: ortografía
  #8 (permalink)  
Antiguo 14/03/2007, 04:39
 
Fecha de Ingreso: enero-2007
Mensajes: 284
Antigüedad: 17 años, 3 meses
Puntos: 1
Re: paso de parametros CheckBox

Cita:
Iniciado por caricatos Ver Mensaje

De todos modos lo que quieres sería así:

<input name="Submit" type="button" onclick="opcion.asp?op=" + op.value...

Pero si esa cadena no la asignas a una variable o un control del formulario no tiene sentido, y seguramente provocará un error.

Saludos
Con esa sentencia no funciona, le das al boton y no hace nada.
Que quieres decir con que si la cadena no la asignas a una vble o un control no tiene sentido?
  #9 (permalink)  
Antiguo 14/03/2007, 04:54
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: paso de parametros CheckBox

Bueno no se si es lo que buscabas baditxuk, pero he hecho un script que te genera la URL según mi idea:

Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<
html>
<
head>
<
title></title>
<
meta name="Author" content="derkeNuke">
</
head>

<
body>

<
form name="formulario">

</
form>

<
script>

var 
f=document.formulario;

//aqui hago una simulacion para generar n campos checkbox embebidos en "formulario", como si se generasen de un valor de servidor
var n=Math.round(Math.random()*4)+2;    //minimo 2 maximo 6
for(var a=0;a<n;a++) {
    var 
chk=document.createElement("INPUT");        //creamos el elemento
    
chk.setAttribute("type","checkbox");            //tipo checkbox
    
chk.setAttribute("name","nombre"+a);
    
f.appendChild(chk);
    
f.appendChilddocument.createTextNode("CHECKBOX "+a) );        //creamos el texto que le acompañara
    
f.appendChilddocument.createElement("BR") );                //salto de linea
}

//agregamos el boton con su correspondiente evento que nos devolvera la ruta de destino
var boton=document.createElement("INPUT");
boton.setAttribute("type","button");
boton.setAttribute("value","OK");
boton.onclick = function() {
    var 
destino="pagina.html?";
    
//recorremos todos los checkboxes del formulario
    
for(var a=0a<f.lengtha++ ) {
        if(
f[a].type=="checkbox") {        //si es un checkbox
            
destino+= f[a].name+"="+f[a].checked+"&";
        }
    }
    
//quitamos el ultimo caracter de destino que será o una ? o un & seguro
    
destino=destino.substring0destino.length-);
    
alert(destino);
}
f.appendChild(boton);

</script>

</body>
</html> 
Cuando le hagas click al botón saldrá la ruta del destino en un alert. Todos los checkbox del formulario se incluyen en la ruta. Si quieres que sólo se incluyan los que están checked basta con recorrer todos los elementos del formulario con esta condición:
Código PHP:
if(f[a].type=="checkbox" && f[a].checked
Espero que con eso puedas arreglártelas bien. Si tienes dudas intentaremos resolvertelas entre todos.

Byes
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #10 (permalink)  
Antiguo 14/03/2007, 05:28
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: paso de parametros CheckBox

Cita:
Iniciado por baditxuk Ver Mensaje
Con esa sentencia no funciona, le das al boton y no hace nada.
Que quieres decir con que si la cadena no la asignas a una vble o un control no tiene sentido?
Verás:

Si esa url que generas, es para enlazar puedes hacer así:

onclick="window.open('opcion.asp?op=' + op.value)"
o si quieres enlazar en la misma página:
onclick="location.href = 'opcion.asp?op=' + op.value"
... pero ambos casos se simplificarían con un botón submit

y el action="opcion.asp" method="get" target="_blank"

Si quieres enlazar en la misma ventana puedes omitir el target o igualarlo a _self

De otro modo se puede asignar a una variable:
onclick="url='opcion.asp?op=' + op.value"

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #11 (permalink)  
Antiguo 14/03/2007, 05:46
 
Fecha de Ingreso: enero-2007
Mensajes: 284
Antigüedad: 17 años, 3 meses
Puntos: 1
Re: paso de parametros CheckBox

Muchas gracias.

Con esto ya lo amoldaré a mis necesidades.

Un saludo
  #12 (permalink)  
Antiguo 14/03/2007, 05:51
 
Fecha de Ingreso: enero-2007
Mensajes: 284
Antigüedad: 17 años, 3 meses
Puntos: 1
Re: paso de parametros CheckBox

Ola caricatos.

Si lo pasas como location.href = 'opcion.asp?op=' + op.value
te sale el valor undefined.
Yo ya lo habia probado de esa manera y nada. No consigo que pase directamente el valor.

Gracias de todas maneras
  #13 (permalink)  
Antiguo 14/03/2007, 08:51
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: paso de parametros CheckBox

Hola:

La verdad es que estoy tan sorprendido como tú, pero parece que no se asignan los valores correctamente con el sistema propuesto, así que te preparé una funcioncita:

Código:
<html>
<head>
<title>
prrueba
</title>
<script type="text/javascript">
function radiado(f,c) {
 r = "";
 for (var i = 0, total = f[c].length; i < total; i ++)
  if (f[c][i].checked) r = f[c][i].value;
 return r;
}</script>
</head>
<body >
<form name="ej" action="opcion.asp" method="get" enctype="text/plain" >
<input name="op" type="radio" value="coche" checked />
<input name="op" type="radio" value="moto" />
<input name="op" type="radio" value="avion" />
<input type="button" onclick="alert('opcion.asp?op=' + radiado(this.form, 'op'));" value="Dentro del form" />
</form>
</body>
</html>
Espero que te sirva.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 05:19.