El método javascript
toString() es tanto de objetos
Date como de objetos
Array(). Sin embargo, equivale a hacer un
join(','), con lo cual puede complicarse si en tu array tienes elementos que sean cadenas y puedan contener el carácter coma (,). Debes elegir un carácter espúreo. Si no lo tienes, se complica un poco la cuestión. Una opción que te queda es la del formulario. Debes recorrer el array (con un ciclo
for... in) y por cada elemento añadirle un campo
hidden a un formulario que ya esté en el
DOM (si no sabes hacerlo,
este link te puede resultar útil). El nombre de todos esos campos
hidden debe ser el mismo, y debe terminar con corchetes ([]). Por ejemplo:
myData[]; o bien
myData[0] según necesites subíndices o no. Luego hacer un submit del formulario y listo.
PHP armará el array
$_POST (o
$_GET, según el método de tu formulario) y al hacerlo, los datos que pusiste del modo que te indiqué ya se "ubicarán" solitos como un array (el array
$_POST['myData'], que es un elemento del array
$_POST, no los confundas). Intenta hacerlo por ti mismo. Si tienes algún problema, consulta y te ayudaremos. ¡Suerte!
PD: la única forma (que yo conozca) de pasar datos al servidor sin refrescar la página es con AJAX, quizás te sirva eso.
PD2: ¿cómo que necesitas "hacer un insert de todo ese array()"? Un array no puede guardarse como tal en una base de datos porque las bases de datos no tienen un tipo de datos
array (aunque el resource que devuelven en una consulta sea un array multidimensional, no es un tipo de datos que puedas manejar). Es distinto si quieres hacer varios
INSERT procesando el array (por ejemplo, uno por cada elemento de éste).