Pasando argumentos entre
páginas a través de la URL
(el
tutorial completo (en inglés) se encuentra en webfx)
Descarga aquí
el archivo necesario: argumenturl.js
Ante todo, avisar de que este sistema sólo funciona
con Explorer y Netscape 6 (NN4.x no lo soporta y
no he podido probar con Opera)
Pasar argumentos entre páginas es algo que la mayoría
de las veces se hace con CGI's y últimamente con páginas
ASP, pero también es posible hacerlo sin necesidad de estos
métodos..
El secreto está en la URL. La mayoría de los servidores
web procesan la URL completa y cuando encuentran un archivo que
coincida, pasan el resto como argumentos. Por ejemplo: la URL http://www.miservidor.com/pagina.html
apunta al archivo pagina.html en el sitio web.
Pasar la URL http://www.miservidor.com/paginafile.htmlAlgo
devolverá un error de archivo no encontrado. El secreto está
en el signo ? (el de interrogación) cuyo uso
no está permitido en los nombre comunes de archivo.
Pasar la URL http://www.miservidorr.com/pagina.html?Algo
cargará el archivo pagina.html pero la URL sigue
siendo la cadena completa.
Se puede aprovechar ésto utilizando window.location.href
(que devuelve la URL completa) y analizando el texto después
de la interrogación, aunque también existe la propiedad
window.location.search que devuelve sólamente
el texto que va después de la interrogación.
Añadir los argumentos
Se podrían sencillamente añadir los argumentos al
enlace:
<a href="pagina2.html?nombre=pepe
pero no sería muy práctico. La otra posibilidad es
crear el enlace sobre la marcha con JavaScript::
window.location = "pagina.html?nombre=valor"
Donde el valor se recogería con la llamada a las funciones
necesarias.
Ejemplo
Introduce algunos argumentos abajo. Al pulsar el botón verás
debajo los argumentos pasados:
El formulario superior, llamado "Formulario", contiene
8 campos de texto:
-Los de la izq: llamadados "nombre1....nombre4")
-Los de la derecha: valor1... valor4
Este es el código de la función update() de la tabla
superior:
<script language="JavaScript">
var a = new ArgumentURL();
function update() {
// quitamos los argumentos anteriores
for (i in a.argumentos) {
a.quitarArgumento(a.argumentos[i].nombre);
}
var miFormulario = document.forms["Formulario"];
//var url = "arguments.htm?";
for (var i=1; i<=4; i++) {
if (miFormulario["nombre"+i].valor != "")
{
var nom = miFormulario["nombre"+i].value;
var val = miFormulario["valor"+i].value;
a.escribirArgumento(nom,val);
}
}
window.location = "argumentos2.html" + a;
return false;
}
//-->
</script>
|
Tranquilos, en la página siguiente
lo entenderéis un poco mejor.
Paso 2: Procesar la URL>>>
Author: Erik
Arvidsson
|