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