¿Cómo llamar de un HTML a otro enviando informacion y recibirla del otro lado?.
Generalmente uno envía información entre un html y un PHP, por ejemplo, o al lenguaje de servidor que mas les guste. Pero en este caso necesitaba servir una pagina desde PHP y no utilizar un motor de plantillas para reemplazar valores, Envié entonces un header del tipo
"header ('Location: pp.html?parametro='.$variable)", dentro del html, utilice esta funcion para leer este primer parametro que es el valor que me interesaba y transferirlo a una variable de formulario:
function leerGets() { var parameters = location.search.substring(1).split("&"); var temp = parameters[0].split("="); document.getElementById("campo").value = unescape(temp[1]); }
Vamos por partes:
location.search.substring(1)
El objeto location, contiene la dirección escrita en el explorador. La propiedad search del objeto contiene el query string. Es decir que suponiendo que la direccion completa fue: http://pp.htm?parametro=xxx¶m2=yyy
location.search devolvería ?parametro=xxx¶m2=yyy . Al agregarle el método substring con un "1" como parámetro, cortamos el primer caracter de la cadena, en este caso el "?"
var parameters = location.search.substring(1).split("&")
al resultado del query string lo dividimos con la funcion split en un array de pares de valores separados por el caracter "&" y lo asignamos a una variable, en este caso parameters.
var temp = parameters[0].split("=");
Ahora tomamos el primer conjunto de parametro=valor (es el que me interesa a mi, aunque bien podríamos haber recorrido todo el query string) y lo volvemos a dividir pero en este caso por el carácter "=".
Es decir. parameters[0] contiene "parametro=xxx" ahora tendre un array "temp" que contendra temp[0] = "parametro" y temp[1] = "xxx".
document.getElementById("campo").value = unescape(temp[1]);
asignamos el valor a una variable de formulario con id="campo".
unescape(valor) me permite sacar los caracteres de codificación del query string. si por ejemplo, parámetro hubiese contenido espacios entonces habría llegado con un formato parecido a este parametro=Juan%20Perez.
Listo!. Espero que sirva.
Agregado mas tarde...
Y ya que estamos amplio la función y la convierto en algo mucho mas útil.function leerGets() { var gets = {}; temp=[]; var parameters = location.search.substring(1).split("&"); parameters.forEach(function(entrada) { temp = entrada.split("="); gets[temp[0]] = unescape(temp[1]); }); return gets; }
No hay comentarios.:
Publicar un comentario