Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/01/2010, 10:11
Avatar de SUSMO
SUSMO
 
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años
Puntos: 0
Enviar array desde javascript a php

Hola a todos,

Tengo un array que debo enviar a otra página que tratará este array con php.
El array lo creo desde javascript y se lo assigno a un input hidden para que se envíe al hacer el submit por método post.
Mi problema está en que no me envía el array como tal sino que me lo envía como string, es decir, todos los valores del array separados por coma.

He estado buscando y he leído por el foro que una solución es enviarlo así y en la página php hacer un explode de la variable recibida para tratarla como un array, este método me funciona pero me surge la duda de si el array tiene muchos valores, al enviarlo como string y por post pueda darme algún problema, ¿puede pasar?

También he encontrado que otra solución es utilizar json para codificar el array en javascript y en la página php usar json_decode para decodificarla, esta solución me ha llevado a que haciendo en javascript un eval de la variable ya me la enviaría así pero no es el caso.

Página inicial
Código Javascript:
Ver original
  1. function onSend(form)
  2. {
  3.      var mails = new Array("mail1", "mail2","mail3");
  4.      alert(mails); //Este alert me muestra mail1,mail2,mail3 y no Array como yo esperaba.
  5.       input = document.createElement('input');
  6.       input.type = 'hidden';
  7.       input.name = 'users';
  8.       //input.value = eval('(' +mails+ ')'); //Usando eval no me funciona
  9.       input.value = mails;
  10.       form.appendChild(input);
  11.       form.submit();
  12. }

Código HTML:
Ver original
  1. <form name="form_newsletters" method="post" action="mipagina.php">
  2.       <button onclick="onSend(this.form);" >Enviar</button>
  3. </form>

Página php
Código PHP:
Ver original
  1. var_dump($_POST['users']); //Sale de tipo string: mail1, mail2, mail3

¿Alguien podría decirme como utilizar bien json en javascript para enviar como array mi variable? o el hecho de enviarlo como string y hacer un explode ¿me puede dar problemas si el array tiene por ejemplo 100 valores?

Gracias de antemano
__________________
Perdida en el mundo del conocimiento