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