Javascript

Hola buenas tardes.Soy estudiante de Telemática y estoy haciendo una pequeña Intranet con ultradev jsp(Macromedia). Mi problema es que tengo en una página (jsp) con una lista o combo-box donde aparecen números.y lo que quiero es: que el usuario de las páginas pueda seleccionar un numero de esa lista, y al hacer click en un botón de esa misma página me vaya a otra página donde aparezca este numero.
Lo he intentado en javascript con una función pero no me acaba de salir, creo que no recojo bien el valor de la lista.Si me dieras una solución...
Gracias de antemano, un saludo.

1 Respuesta

Respuesta
1
Si estás trabajando con JSP, puedes utilizar algún objeto que contenga la petición de un formulario para extraer el dato que necesitas a una variable, y después mostrarlo en otra página. No tengo grandes conocimientos de JSP, pero te esbozaré el método que tendrías que seguir.
En la página JSP donde esté tu combo, lo definirás más o menos así:
<form name="miForm" action="destino.jsp" method="GET">
<select name="miSelect">
<option value="0">0</option>
<option value="1">1</option>
...
</select>
<input type="submit" value="Enviar">
</form>
La página "destino.jsp" será donde muestres el valor que hayas escogido. En ésta página tendrás que mirar, desde código Java, el valor que haya escogido el usuario, y que irá encapsulado de algún modo en el objeto asociado a la petición.
No sé qué objeto es en JSP, pero con servlets usaba el HTTPRequest, con ASP Request... En tu documentación de JSP encontrarás algún método que te permita recuperar los nombres y los valores de las variables de tu formulario, que se han pasado al servidor mediante un método GET de HTML.
Existe otra forma de hacer esto mismo sin apoyarse en el servidor (sólo con Javascript), que podría contarte con mayor precisión, aunque creo que deberías buscar el modo de hacerlo con JSP, ya que estás trabajando en ese entorno.
En Javascript harías exactamente lo mismo, pero componiendo "a mano" el método GET:
<form name="miForm">
<select name="miSelect">
...
</select>
<input type="button" value="Enviar" onClick="cargarNuevaPagina(this.form.miSelect.value)">
</form>
Y la definición de la función cargarNuevaPagina():
function cargarNuevaPagina(valor) {
location.href='nuevaPagina.html?'+valor;
}
Así, estás llamando a la página 'nuevaPagina.html' con una cadena 'search' asociada, que sólo contiene el valor pasado en el formulario: this. form. MiSelect. value. "this" indica "este objeto" (el botón), "form" es el formulario en el que está el botón, "miSelect" es el nombre del combo, y "value" indica su valor.
En nuevaPagina.html, necesitas una función que mire el URL y extraiga la parte search...
function devolverParametro() {
return location.search.substr(1);
}
Puedes llamar a esa función desde donde quieras... Por ejemplo:
<body onload="alert(devolverParametro())">
Algunas notas acerca del uso del método GET:
a) No admite argumentos de más de 250 caracteres, poco más o menos. Ten en cuenta que pasa con la URL de la página, por lo que no puede ser muy largo...
b) No admite aquellos caracteres que estén prohibidos en una URL (por lo mismo de antes). Para evitar esto, puede codificarse la cadena a pasar con la función escape() y decodificarla con unescape() en el lado receptor.
c) Requiere la presencia de un servidor para funcionar. Es decir, que no funciona más que con páginas recuperadas mediante el protocolo HTTP. En particular, si haces pruebas con páginas en local (en tu disco duro), sin servirlas mediante un servidor HTTP, no funcionará. Sí lo hará, en cambio, si pruebas tus páginas a través de un servidor (con una dirección del tipo http://localhost/...)
Espero que no tengas muchas dudas, pero no dudes en preguntarme de nuevo para aclarar cualquier aspecto de este u otros problemas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas