Ricard Catalan
Hola ♥, soy Ricard Catalan Díaz. Soy diseñador y programador web , quieres conocerme?

25 de noviembre de 2008

No hace mucho me surgió la idea de realizar un formulario en HTML enviando las variables mediante POST a un php donde realizaba el envio de e-mail (hasta aquí algo normal).
Normalmente el formulario lo realizaba integramente con php y se cargaba sobre si mismo, o bien lo redireccionaba a otro html indicando el estado de su envio.
La idea que me surgió es usar la segunda opción de redirigir a otro documento enviando variables mediante GET y capturar variables con javascript desde una url , por ejemplo: http://www.undominio.com/formulario.html?estado=ok.


A continuación propongo un ejemplo usando mootools, por el cual podremos recibir una cantidad n de variables:


/* Capturamos la variable enviado mediante GET con JavaScript */
window.addEvent('domready', function() {
var estado = window.location.search;
if((/^\?/).test(estado)){
var resultado = estado.substr(1,estado.length)+'&'; //Quitamos  ? y añadimos & al final
var variables = resultado.split(/\=\w+\&/);
var contenido = resultado.split(/\w+\=/);
for(var i=0; i<contenido.length; i++) contenido[i] = contenido[i].substr(0,contenido[i].length-1);
contenido.shift(); //Quitamos el valor de la primera posición del array al estar vacio

/* OPCIONAL: ejemplo que muestra una capa indicando el envío correcto o no */
var capa = $('estado');
if(variables[0]=='estado' && contenido[0]=='ok'){
capa.addClass('enviado'); //Cambiamos la CLASS a ENVIADO
capa.setStyle('visibility','visible'); //Visible, por defecto hidden
capa.setStyle('height','16px');
capa.setStyle('padding','10px');
capa.setStyle('margin-bottom','20px');
capa.set('html','Se ha enviado correctamente el formulario de contacto.'); //Ponemos el texto
}else if(variables[0]=='estado' && contenido[0]=='ko'){
capa.addClass('error'); //Cambiamos la CLASS a ERROR
capa.setStyle('visibility','visible'); //Visible, por defecto hidden
capa.setStyle('height','16px');
capa.setStyle('margin-bottom','20px');
capa.setStyle('padding','10px');
capa.set('html','Ocurrió un error durante el envio, por favor inténtelo más tarde.'); //Ponemos el texto
}
}
});

Variables y contenidos son dos arrays, el primero contiene el nombre de las variables y el segundo el valor de las variables.
En el comentario donde aparece OPCIONAL, lo he usado en este blog, y con javascript oculto i/o muestro el resultado del envío.

Este pequeño script tiene muchas más utilidades y solo he mostrado un posible uso, espero que os sirva de ayuda.

Etiquetas: ,


1 comentarios:

Anonymous jose ha dicho...
A las 3 de abril de 2009, 10:31

me sirvió, muchas gracias

 

Añadir un comentario Publicar un comentario

Suscribirse a Enviar comentarios [Atom]

◄ Inicio