Foros del Web » Programando para Internet » Javascript »

Recoger parametros de un form GET

Estas en el tema de Recoger parametros de un form GET en el foro de Javascript en Foros del Web. Hola Todos los lenguajes servidor (al menos los que he visto yo) tienen alguna funcion de la que coger parametros que vengan de un formulario ...
  #1 (permalink)  
Antiguo 25/01/2006, 01:06
 
Fecha de Ingreso: marzo-2005
Mensajes: 47
Antigüedad: 19 años, 1 mes
Puntos: 0
Pregunta Recoger parametros de un form GET

Hola

Todos los lenguajes servidor (al menos los que he visto yo) tienen alguna funcion de la que coger parametros que vengan de un formulario GET, y los cogen ya bien formateados, no con codigos %noseque para los 'caracteres raros', pero con JavaScript no conozco si hay algo similar.

Me podeis informar sobre esto? que funcion hay que usar?
__________________
Visita www.GranFuckultad.tk y goza de risa
  #2 (permalink)  
Antiguo 25/01/2006, 01:26
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola Cyttorak:

En realidad es muy fácil recoger los parámetros GET... en las FAQs hay un ejemplo.

Esoa caracteres los puedes filtrar con el método unescape...

Yo suelo hacer esto:

<body onload="inicio()" >

... y la función inicio():

Código:
function inicio()	{
	var entrada = location.href;
	if (entrada.split("?").length > 1)
		for (var i = 0, datos = entrada.split("?").split("&"), total = datos.length; i < total; i ++)
			window[datos[i].split("=")[0]] = datos[i].split("=")[1];
}
Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 25/01/2006, 02:04
 
Fecha de Ingreso: marzo-2005
Mensajes: 47
Antigüedad: 19 años, 1 mes
Puntos: 0
He hecho este codigo, juntandolo el tuyo con el de las FAQS, pero tengo algunas dudas


Código:
<script>
function inicio()	{
	var entrada = location.href.split("?");
	if (entrada.length > 1) {
		var query = entrada[1];
		var remplaza = /+/gi; 
		var par;
		for (var i = 0, datos = query.split("&"), total = datos.length; i < total; i ++) {
			par = datos[i].split("=");
			window[par[0]] = unescape(par[1]).replace(remplaza," ");
		}
	}
}
</script>
En vez de
var remplaza = /+/gi;
no deberia ser
var remplaza = "/+/gi";
?
que significa /+/gi? es decir, que es lo que se esta sustituyendo por espacios?

se puede garantizar que tras la 1º "?" no habra mas "?"? porque si no la url se dibide en mas de dos cachos y podrias dejarte los parametros del 3º cacho en adelante

luego desde fuera como se acceden a los parametros? con windows[nombre_parametro]? la variable windows se puede usar asi, o abria que definir otra y global?
__________________
Visita www.GranFuckultad.tk y goza de risa
  #4 (permalink)  
Antiguo 25/01/2006, 02:26
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

Si quieres estar seguro de no encontrar más de un carácter "?", puedes obtener la cadena de entrada así:

entrada = location.search.substr(1);

y luego dividirla con entrada.split("&")... pero si hay más "?" por recibir uri's con parámetros, esas direcciones deberían tener solo un parámetro... si no sería difícil saber los parámetros de cada dirección (eso lo pregunté yo también hace algunos meses)

Tal vez esté un poco liado...

Sobre la expresión regular, sé que está bien definida... se entrecomilla cuando se usa como parámetro de regExp (creo que es así el constructor)... pero es un tema en el que poco puedo ayudarte

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:25.