Foros del Web » Programando para Internet » Javascript » Frameworks JS »

No consigo capturar en archivo php un array enviado por POST y ajax

Estas en el tema de No consigo capturar en archivo php un array enviado por POST y ajax en el foro de Frameworks JS en Foros del Web. Hola amigos(as), Estoy trabajando en una pequeña aplicación que habilita la selección de filas en un grid (cada una es un enlace a contenido html). ...
  #1 (permalink)  
Antiguo 19/06/2015, 10:48
 
Fecha de Ingreso: enero-2009
Mensajes: 173
Antigüedad: 15 años, 9 meses
Puntos: 1
No consigo capturar en archivo php un array enviado por POST y ajax

Hola amigos(as),

Estoy trabajando en una pequeña aplicación que habilita la selección de filas en un grid (cada una es un enlace a contenido html). Hasta ahora ya he conseguido reunir en un array los enlaces que se hayan seleccionado y mando esta información por post a un php que debiera recibir y operar con esa información... pero no consigo que funcione (estoy trabajando con ExtJs 4.2)

Ojalá me puedan ayudar.

En el js que captura y envía los enlaces seleccionados:
Código Javascript:
Ver original
  1. var numRecords = 0;
  2.       var rows = []; // inicio la matiz vacía
  3.       var group = '';
  4.  
  5.  
  6.       me.callParent(arguments);
  7.  
  8.       me.on('ButtonClicked', function (grid) {
  9.          
  10.           var sm = grid.getSelectionModel();
  11.           var selected = sm.getSelection();
  12.       var numRecords = sm.getCount(); // Devuelve el número de filas seleccionadas
  13.  
  14.         Ext.each(selected, function(item) {
  15.             var url = item.get('Archivo');
  16.             rows.push(url); // agrega enlaces a la matriz
  17.        //   window.open(url);
  18.         }, this);
  19.  
  20.         console.log("Primera vez:  ", rows); // "rows" almacena valores y están bien
  21.  
  22.  
  23.       Ext.Ajax.request({
  24.       url: 'recibeS.php',  // mi url
  25.       method: 'POST',
  26.       params: {
  27.  
  28.               group: rows,  // incluye la matriz en los parámetros
  29.           },
  30.      
  31.       });
  32.                     console.log("Segunda vez:  ",rows);  // "rows" almacena valores y están bien
  33.  
  34.       }, this);

El archivo "recibeS.php"

Código PHP:
Ver original
  1. <html>
  2. <head>
  3.     <title>Aplicación de prueba - Despliege de tabulados</title>
  4. </head>
  5.  
  6. <body>
  7. </body>
  8.  
  9. <?php
  10.  
  11.  
  12. foreach( $_POST['group'] as $value){
  13.  
  14. echo ("pasa por aqui y el contenido de group es :". $value);
  15.  
  16.  
  17.  
  18.     include $value;
  19.  
  20.     $save  = trim($value);
  21.     $save1 = explode("htm",$save);
  22.     $save2 = $save1[0].'xls';
  23.     $save3 = str_replace("IE","Otro",$save2);
  24.  
  25.     ECHO "<a href=$value><div align=center><img src='SaveFile.PNG' border=0></div></a> <br /><br />";
  26. }
  27.  
  28. ?>
  29.  
  30. </html>

Si reviso (en el debugger de Chrome) la llamada a "recibeS.php" puedo ver:



Y también recibo esto:

  #2 (permalink)  
Antiguo 22/06/2015, 07:07
 
Fecha de Ingreso: enero-2009
Mensajes: 173
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: No consigo capturar en archivo php un array enviado por POST y ajax

Como aún necesito encontrar ayuda, corrigo el enlace a las imagenes que pueden facilitar el obtener una respuesta.

Primera imagen: Por lo que veo, sí consigo pasar el array al archivo php...



Segunda imagen: Pero la estoy "tomando" o "recogiendo" mal. Ojalá alguién me pueda ayudar a corregir lo que estoy haciendo mal.



Gracias
  #3 (permalink)  
Antiguo 22/06/2015, 12:07
Avatar de newboy_master  
Fecha de Ingreso: enero-2008
Ubicación: Granada
Mensajes: 882
Antigüedad: 16 años, 10 meses
Puntos: 46
Respuesta: No consigo capturar en archivo php un array enviado por POST y ajax

Te arreglo las imágenes:

Primera imagen:



Segunda imagen:



La recepción estoy casi seguro de que es correcta, la sintaxis de foreach es así. Creo que no estás enviando un array y por eso no se puede recorrer en php.

Prueba a sustituir el envío de esta forma:

Código:
params: {
     "group[]": rows,  // incluye la matriz en los parámetros
},
Otra opción es enviar los datos en JSON, aquí tienes un ejemplo:
http://blog.mdsohelrana.com/2013/08/...-ajax-request/

Salu2.
__________________
@jslirola - Programador Web Freelance.
  #4 (permalink)  
Antiguo 22/06/2015, 14:00
 
Fecha de Ingreso: enero-2009
Mensajes: 173
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: No consigo capturar en archivo php un array enviado por POST y ajax

Gracias estimado,

Me funcionó tu primera sugerencia:
Código:
params: {"group[]": rows,  // incluye la matriz en los parámetros},
y por fin ya pude pasar este punto... pero no consigo que la página devuelta por el "recibeS.php" se muestre en el navegador, sólo la puedo ver en el debugger/network y la imagen que agrego con la línea:

Código:
ECHO "<a href=$value><div align=center><img src='SaveFile.PNG' border=0></div></a> <br /><br />";
no aparece por ninguna parte.... te agradecería si me puedes brindar esta última ayuda.

Gracias.

Etiquetas: extjs, js, php, post
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 15:16.