Sonido
CSS
Dreamweaver
Ridiculeces
Artículos
Site Check
JavaScript


 


Aviso:
Me he trasladado a:
http://www.tecnorama.org
(con algunos de estos contenidos y otros nuevos)

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:

Nombre del argumento Valor del argumento

 

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