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:
Un ejemplo se puede ver aquí: http://www.caricatos.net/articulos/r...nocido&vale=sifunction 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(); }
Si alguién sabe como mejorarlo, me gustaría saberlo.
Saludos