19 - Parámetros en un hipervínculo |
Habíamos visto que podemos enviar datos al servidor mediante un formulario. En muchas situaciones necesitamos enviar datos al servidor al ser presionado un hipervínculo.
Vamos a resolver un problema muy sencillo donde llamaremos a otra página enviándole como parámetro un número. La página que lo recibe imprime la tabla de multiplicar de dicho valor.
pagina1.html
<html> <head> <title>Problema</title> </head> <body> <a href="pagina1.asp?tabla=2">Tabla del 2</a> <br> <a href="pagina1.asp?tabla=3">Tabla del 3</a> <br> <a href="pagina1.asp?tabla=4">Tabla del 4</a> </body> </html>
Como podemos observar un parámetro en un hipervínculo se lo añade en la propiedad href y seguido al nombre de la página a llamar mediante el caracter de "?" interrogación. Todo parámetro tiene un nombre y luego del caracter igual el valor del mismo.
<a href="pagina1.asp?tabla=2">Tabla del 2</a> <br>
Ahora la página asp que rescata el valor del parámetro es:
<%option explicit%> <html> <head> <title>problema</title> </head> <body> <% dim num,f num=request.querystring("tabla") response.write("<h1>Tabla de multiplicar del " & num &"</h1>") for f=num to num*10 step num response.write(f & "-") next %> </body> </html>
Recordemos que para extraer el valor cargado en un control de un formulario HTML utilizamos el objeto request y el método form. En cambio para recuperar el dato enviado en el hipervínculo empleamos el método querystring del mismo objeto request:
num=request.querystring("tabla")
Una vez rescatado el valor procedemos a mostrar los primeros diez términos de la tabla de multiplicar respectiva:
for f=num to num*10 step num response.write(f & "-") next
Es decir inicializamos el contador f con el valor rescatado del parámetro. En cada paso del for incrementamos el contador f en num. Por último indicamos que el ciclo finalice cuando f llegue al valor num*10.
Si queremos pasar más de un parámetro en un hipervínculo debemos separarlos empleando el caracter &.
Por ejemplo:
<a href="pagina1.asp?inicio=5&fin=10">Mostrar los números comprendidos entre 5 y 10</a>