Foros del Web » Programando para Internet » Javascript »

enviar arreglo javascript a php

Estas en el tema de enviar arreglo javascript a php en el foro de Javascript en Foros del Web. Hola!!, desde ya gracias por su atención y ayuda que me ha dado mucho. Estoy desarrollando una page con ajax y php, mi problema es ...
  #1 (permalink)  
Antiguo 21/05/2009, 11:59
 
Fecha de Ingreso: marzo-2002
Mensajes: 299
Antigüedad: 22 años, 2 meses
Puntos: 1
enviar arreglo javascript a php

Hola!!, desde ya gracias por su atención y ayuda que me ha dado mucho.

Estoy desarrollando una page con ajax y php, mi problema es que no sé como enviar arreglos de javascript a php.

En ajax necesito enviar dicho arreglo como parametro, que se va a recibir en un archivo php, pero no sé como enviarlo. Lo tengo de la siguiente manera:

ajax.open("GET", "agregarcarro.php?producto[]="+productos_nombre+"&cantidad[]="+productos_cantidad, true);

mis arreglos son producto[] y cantidad[]

Saludos, y gracias.
  #2 (permalink)  
Antiguo 21/05/2009, 12:16
Avatar de colote  
Fecha de Ingreso: julio-2008
Ubicación: Rosario - Santa Fe - Argentina
Mensajes: 729
Antigüedad: 15 años, 10 meses
Puntos: 8
Respuesta: enviar arreglo javascript a php

Podes pasarlo por medio de Json.

Saludos, Ricardo
__________________
Mail: [email protected]
  #3 (permalink)  
Antiguo 21/05/2009, 16:36
 
Fecha de Ingreso: marzo-2002
Mensajes: 299
Antigüedad: 22 años, 2 meses
Puntos: 1
Respuesta: enviar arreglo javascript a php

Gracias Ricardo, solo que estoy iniciando con javascript y ajax y estoy muy muy verde, ya he estado checando información sobre JSON que me sugieres, pero no logro entender claramente, si tienes algún línk que me recomiendes o me puedes dar un poco más de información al respecto de JSON, te agradezco.


  #4 (permalink)  
Antiguo 22/05/2009, 05:33
Avatar de colote  
Fecha de Ingreso: julio-2008
Ubicación: Rosario - Santa Fe - Argentina
Mensajes: 729
Antigüedad: 15 años, 10 meses
Puntos: 8
Respuesta: enviar arreglo javascript a php

Hola Voy a tratar de explicarte un poco lo que yo hice para pasar un array de javascript a php por json ...
Perdon si algo esta mal, pasa que no entiendo tanto como para explicarte jeje !!!!

Aca cargamos el array en javascript:
funcion_update.js
Código javascript:
Ver original
  1. function calculo(e)
  2. {
  3. var preciojs1 = new Array();
  4. var preciojs2 = new Array();
  5.  
  6. preciojs1[fmc] = gral_desc_1s.toFixed(2);   // esto en mi funcion esta dentro de un for que le va asignando los datos !!! por eso el subindice fmc
  7. preciojs2[fmc] = gral_desc_2s.toFixed(2);
  8.  
  9. //aca la asingacion por medio de json ...
  10.   var obj={preciopes : preciojs1,
  11. preciodol:preciojs2};
  12.   var cadena=obj.toJSONString();
  13.   enviarDatos(cadena);
  14. //alert(cadena);
  15. }
  16.  
  17.  
  18. // y esto es la parte comun
  19. addEvent(window,'load',inicializarEventos,false);
  20.  
  21. function inicializarEventos()
  22. {
  23.   var ref=document.getElementById('boton1');
  24.   addEvent(ref,'click',calculo_fondo_listado,false);
  25. }
  26.  
  27. //***************************************
  28. //Funciones comunes a todos los problemas
  29. //***************************************
  30. function addEvent(elemento,nomevento,funcion,captura)
  31. {
  32.   if (elemento.attachEvent)
  33.   {
  34.     elemento.attachEvent('on'+nomevento,funcion);
  35.     return true;
  36.   }
  37.   else  
  38.     if (elemento.addEventListener)
  39.     {
  40.       elemento.addEventListener(nomevento,funcion,captura);
  41.       return true;
  42.     }
  43.     else
  44.       return false;
  45. }
  46.  
  47.  
  48. var conexion1;
  49. function enviarDatos(cadena)
  50. {
  51.   conexion1=crearXMLHttpRequest();
  52.   conexion1.onreadystatechange = procesarEventos;
  53.   conexion1.open('GET','actualiza.php?cadena='+cadena, true);
  54.   conexion1.send(null);
  55. }
  56.  
  57. function procesarEventos()
  58. {
  59.   var resultados = document.getElementById('resultados');
  60.   if(conexion1.readyState == 4)
  61.   {
  62.     resultados.innerHTML = conexion1.responseText;
  63.   }
  64.   else
  65.     if (conexion1.readyState==1 || conexion1.readyState==2 || conexion1.readyState==3)
  66.     {
  67.       resultados.innerHTML = "<b>Procesando... Aguarde unos instantes</b>";
  68.     }
  69. }
  70.  
  71.  
  72. function crearXMLHttpRequest()
  73. {
  74.   var xmlHttp=null;
  75.   if (window.ActiveXObject)
  76.     xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  77.   else
  78.     if (window.XMLHttpRequest)
  79.       xmlHttp = new XMLHttpRequest();
  80.   return xmlHttp;
  81. }


y en la pagina php donde lo recibis, haces algo asi .
actualiza.php, le puse los nombres igual como lo tengo yo,

Código php:
Ver original
  1. require('json.php');
  2. include('conexion.php');
  3. $json=new Services_JSON();
  4. $cad=$json->decode(stripslashes($_GET['cadena']));
  5.  
  6. //despues haces un for para recorrer el arreglo
  7. //mejor seria un foreach !!!
  8.  
  9. for($i=1;$i<=cant_valores_array;$i++)
  10. {
  11.     echo $precio1=$cad->preciopes[$i]; echo " ";
  12.     echo $precio2=$cad->preciodol[$i]; echo "<br>";
  13. }

Espero que te sirva la ayuda !!!!!

Saludos, Ricardo
__________________
Mail: [email protected]
  #5 (permalink)  
Antiguo 22/05/2009, 10:16
 
Fecha de Ingreso: marzo-2002
Mensajes: 299
Antigüedad: 22 años, 2 meses
Puntos: 1
Respuesta: enviar arreglo javascript a php

Gracias Ricardo!!, checando, probando y buscando el json.php.

Cualquier cosa te comunico.

Salu2
  #6 (permalink)  
Antiguo 22/05/2009, 11:14
 
Fecha de Ingreso: marzo-2002
Mensajes: 299
Antigüedad: 22 años, 2 meses
Puntos: 1
Respuesta: enviar arreglo javascript a php

upss, no encuentro el archivo json.php
  #7 (permalink)  
Antiguo 22/05/2009, 11:24
Avatar de colote  
Fecha de Ingreso: julio-2008
Ubicación: Rosario - Santa Fe - Argentina
Mensajes: 729
Antigüedad: 15 años, 10 meses
Puntos: 8
Respuesta: enviar arreglo javascript a php

Aca lo subi a mi server ... asi lo podes bajar ...

json.zip

Saludos
__________________
Mail: [email protected]
  #8 (permalink)  
Antiguo 22/05/2009, 17:06
 
Fecha de Ingreso: marzo-2002
Mensajes: 299
Antigüedad: 22 años, 2 meses
Puntos: 1
Respuesta: enviar arreglo javascript a php

Gracias!!, manos a la obra, cualquier cosa te comento.

Nuevamente gracias
  #9 (permalink)  
Antiguo 25/05/2009, 10:53
 
Fecha de Ingreso: marzo-2002
Mensajes: 299
Antigüedad: 22 años, 2 meses
Puntos: 1
Respuesta: enviar arreglo javascript a php

Hola Ricardo!!,

Tengo que incluir algún archivo en el código javascrip??, porque me marca error en la siguiente línea:

var cadena=obj.toJSONString();
  #10 (permalink)  
Antiguo 29/05/2009, 06:11
Avatar de colote  
Fecha de Ingreso: julio-2008
Ubicación: Rosario - Santa Fe - Argentina
Mensajes: 729
Antigüedad: 15 años, 10 meses
Puntos: 8
Respuesta: enviar arreglo javascript a php

Hola !!!
En el codigo javascript no , lo tenes que incluir en el codigo PHP ...

Saludos
__________________
Mail: [email protected]
  #11 (permalink)  
Antiguo 04/11/2009, 14:39
 
Fecha de Ingreso: noviembre-2009
Mensajes: 1
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: enviar arreglo javascript a php

Al igual que serenity, a mi también me producia un error en toJSONString(), sin embargo tuve que buscar y descargar el archivo json.js y se soluciono el problema. Sin embargo al cachar los valores en el archivo PHP las comillas aparecen escapadas (\") , por lo cual procedi a utilizar str_replace('\"','"',$cadena) para obtener la cadena JSON de forma correcta y entonces prodecer a decodificarla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:50.