Ver Mensaje Individual
  #4 (permalink)  
Antiguo 22/05/2009, 05:33
Avatar de colote
colote
 
Fecha de Ingreso: julio-2008
Ubicación: Rosario - Santa Fe - Argentina
Mensajes: 729
Antigüedad: 16 años, 7 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]