Foros del Web » Programando para Internet » Javascript »

Paso de variables desde formulario

Estas en el tema de Paso de variables desde formulario en el foro de Javascript en Foros del Web. Hola, Antes de poner este nuevo tema he estado mirando las FAQ's pero no he encontrado solución a la siguiente cuestión: Tengo una página HTML ...
  #1 (permalink)  
Antiguo 04/11/2007, 07:57
 
Fecha de Ingreso: abril-2007
Mensajes: 17
Antigüedad: 17 años
Puntos: 0
Paso de variables desde formulario

Hola,

Antes de poner este nuevo tema he estado mirando las FAQ's pero no he encontrado solución a la siguiente cuestión:

Tengo una página HTML con un formulario que abre una ventana. Es decir:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>
<meta name="Keywords" content="" />
<script LANGUAGE="javascript">

function Abrir_Ventana(direccion, pantallacompleta, herramientas, direcciones, estado, barramenu, barrascroll, cambiatamano, ancho, alto, sustituir){

var izquierda = (screen.availWidth - ancho) / 2;
var arriba = (screen.availHeight - alto) / 2;

var opciones = "fullscreen=" + pantallacompleta +
",toolbar=" + herramientas +
",location=" + direcciones +
",status=" + estado +
",menubar=" + barramenu +
",scrollbars=" + barrascroll +
",resizable=" + cambiatamano +
",width=" + ancho +
",height=" + alto +
",left=" + izquierda +
",top=" + arriba;

var ventana = window.open(direccion,"ventana",opciones,sustituir );
}

//-->
</script>

</head>

<body>

<FORM name="FORM1" method="post" action="XXXX"><br />

<br /><br />
<label><strong>Nombre:</strong></label><br />
<input type="text" name="NOMBRE" size="30"><br /><br />
<input type="button" onclick="Abrir_Ventana('pag2.html?IVAR1=3',0,0,0,0 ,0,0,0,426,200,1);" value="Añadir rango de fechas">
</div><br /><br /> <br />

<INPUT TYPE="submit" value=Aceptar">
<INPUT TYPE="reset" value="Borrar"><br /><br />

</FORM>


</body>
</html>

Mi duda es ¿cómo puedo añadir el valor que se incluye en el formulario como parámetro (a continuación de VAR1) en la URL que abro en la nueva ventana?. Es para luego poder coger el ese valor en la nueva ventana.

Gracias y saludos a todos.
  #2 (permalink)  
Antiguo 04/11/2007, 08:26
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 variables desde formulario

Hola kullomo

Prueba con esto:

Código:
onclick = ""Abrir_Ventana('pag2.html?IVAR1=3?IVAR2=' + document.FORM1.NOMBRE.value,0,0,0,0 ,0,0,0,426,200,1);"
Saludos,
  #3 (permalink)  
Antiguo 04/11/2007, 15:10
 
Fecha de Ingreso: abril-2007
Mensajes: 17
Antigüedad: 17 años
Puntos: 0
Re: Paso de variables desde formulario

Muchísimas gracias JavierB. La solución que me has indicado me ha venido perfectamente. Ahora aprovechando me gustaría que me orientaseis sobre lo siguiente:

En el formulario de inicio tenga también radiobuttons

<input name="VAR1" type="radio" value="1" checked>Opcion 1
<input name="VAR1" type="radio" value="2">Opcion 2
<input name="VAR1" type="radio" value="3">Opcion 3
<input name="VAR1" type="radio" value="4">Opcion 4


¿Cómo puedo pasar como parámetro el radio que se elija en la URL que os indicaba anteriormente (onclick="Abrir_Ventana('pag2.html?IVAR1=3',0,0,0, 0 ,0,0,0,426,200,1);" value="Añadir rango de fechas">) y cómo puedo recuperar ese valor del radio en la página de destino?.

Gracias por adelantado
  #4 (permalink)  
Antiguo 05/11/2007, 00:04
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 variables desde formulario

Hola:

No has pensado en enviar el form a la ventana: Formularios y enlaces dirigidos a ventanas...

De todos modos, si quieres fabricar la url a mano, con los radios me parece que se procesa un poco distinto a los demás... por ejemplo fabricando una funcioncilla:
function seleccionado() {
f = document.forms[0]["VAE1"];
for (i = 0, total = f.length, i < total; i ++)
if (f[i].checked) return f[i].value;
return null;
}

El problema posible es que no se haya chequeado ninguno, y con esta función se obtendría "null"

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 05/11/2007, 04:47
 
Fecha de Ingreso: abril-2007
Mensajes: 17
Antigüedad: 17 años
Puntos: 0
Re: Paso de variables desde formulario

Estimado Caricatos:

Gracias por tu respuesta. Lo que he hecho antes de recibir tu respuesta es lo siguiente: he añadido al código la función getRadioButtonSelectedValue para obtener el valor del radiobutton seleccionado (el radiobutton siempre va a tener seleccionada una opción)

function getRadioButtonSelectedValue(ctrl)
{
for(i=0;i<ctrl.length;i++)
if(ctrl[i].checked) return ctrl[i].value;
}

Esta función la llamo en otra función que se llama al pulsar el botón de envío del formulario

function CheckAlta()
{
// Check campos obligatorios
materia = getRadioButtonSelectedValue(document.FORM1.ENCUAD) ;

if( FORM1.TITULO.value=="" )
{
alert( "Indique un título" );
FORM1.TITULO.focus();
return false;
}
}

Mi duda ahora es cómo puedo pasar en la URL que creo a mano la variable 'materia' en la que está almacenado el valor que se selecciona en el formulario.

Vuelvo a poner de nuevo la URL que compongo:

<input type="button" onclick="Abrir_Ventana(''pag2.html?VAR1=3?VAR2=1' + document.FORM1.TITULO.value,0,0,0,0,0,0,0,426,200, 1);" value="Añadir rango de fechas">

Muchísimas gracias a todos
  #6 (permalink)  
Antiguo 05/11/2007, 13:14
 
Fecha de Ingreso: abril-2007
Mensajes: 17
Antigüedad: 17 años
Puntos: 0
Re: Paso de variables desde formulario

Perdón por insistir otra vez, pero necesitaba ayuda al respecto de mi última pregunta. Tengo parado el desarrollo y necesito terminarlo con urgencia.

Gracias a todos.
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 07:00.