Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/11/2005, 06:27
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
Hola:

Si ese arreglo es una variable definida con javascript, por la forma de manejo de arrays javascript se pasarían como un solo elemento separado por comas...

por ejemplo:
var miArreglo = [1, 2, 3];

al pasar eso a un elemento de formulario se convierte en 1,2,3 y sencillamente separas los elementos con el método split de las cadenas...

"1,2,3".split(",") es igual a ["1","2","3"]... en este caso abriar que parsear las cadenas (parseInt)

Pero si ese arreglo es un elemento de formulario como un select multiple o un checkbox... la linea URL se queda con copias de las variables.
destino.html?check=1&check=2

Entonces se complica el tema.

Normalmente recojo los parámetros con un bucle así:
for (var i = 0, elementos = location.search.substr(1).split("&"), total = elementos.length; i < total; i ++)
window[elemento[i].split("=")[0]] = elemento[i].split("=")[1];

Pero se puede modificar el script para saber si está definida la variable, y sino definirla como array, y por último ir añadiendo los items...

Código:
<html>
<head>
<script>
function recibir()	{
	datos = location.search.substr(1).split("&"), total = datos.length;
	for (var i = 0; i < total; i ++)	{
		if (window[datos[i].split("=")[0]] == undefined)
			window[datos[i].split("=")[0]] = new Array();
		window[datos[i].split("=")[0]][window[datos[i].split("=")[0]].length] =
			datos[i].split("=")[1];
	}
}

</script>
</head>
<body onload="recibir()" >
</body>
</html>
Es algo complejo, pero no muy difícil... por cierto, en las FAQs se habla de recogida de parámetros (ne recuerdo si se contempla la recogida de arrays)

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