Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/04/2007, 01:03
Avatar de caricatos
caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Recibiendo array por url

Hola:

Acabo de terminar un script para recibir las variables desde javascript enviadas por el método get desde un formulario o desde url's del tipo pagina.html?var1=dato1&var2=dato2.

La cuestión es que cuando se envía un array los sistemas básicos solo dejan el último de los valores que recibe de cada variable, debido a que se asignan valores tantas veces como longitud tenga ese array.

El código es:

Código:
function receptor()	{
	var entradas = new Object();

	function allanar()	{
		for (i in entradas)
			window[i] = (entradas[i]["esArray"] == undefined) ? entradas[i] : entradas[i].datos; 
	}

	function aparejar(dato) {
		if (dato.length > 1)
			if (entradas[dato[0]] == undefined)
				entradas[dato[0]] = dato[1];
			else	{
				if (entradas[dato[0]]["esArray"] == undefined) {
					_dato = entradas[dato[0]];
					entradas[dato[0]] = new Object();
					entradas[dato[0]].esArray = true;
					entradas[dato[0]].datos = new Array();
					entradas[dato[0]].datos[0] = _dato;
				}
				entradas[dato[0]].datos[entradas[dato[0]].datos.length] = dato[1];
			}
	}

	if (location.href.indexOf("?") == -1) return;
	params = unescape(location.search.substr(1)).split("&");
	for (var i = 0, total = params.length; i < total; i ++) aparejar(params[i].split("="));
	allanar();
}
Un ejemplo se puede ver aquí: http://www.caricatos.net/articulos/r...nocido&vale=si

Si alguién sabe como mejorarlo, me gustaría saberlo.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo