Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Enviar datos post en una ventana nueva

Estas en el tema de Enviar datos post en una ventana nueva en el foro de Javascript en Foros del Web. Que tal tengo un problema, lo que necesito es enviar una serie de datos para crear un archivo excel desde php. El problema es que ...
  #1 (permalink)  
Antiguo 19/08/2014, 15:16
 
Fecha de Ingreso: abril-2009
Mensajes: 100
Antigüedad: 15 años
Puntos: 0
Enviar datos post en una ventana nueva

Que tal tengo un problema, lo que necesito es enviar una serie de datos para crear un archivo excel desde php.
El problema es que intente con el siguiente código:
Código Javascript:
Ver original
  1. window.open('reportesPHP/reporteHistorial.php?accion=excel&idGPS='+idGPS+'&velocidad='+velocidad+'&fechas='+fechas+'&direcciones='+direcciones+'');

Pero como la cantidad de datos puede ser excesiva me manda un error por exceder el limite de datos via GET, entonces no se si exista una manera de poder enviar los datos via POST con un window.open para poder generar el archivo excel en php.
  #2 (permalink)  
Antiguo 19/08/2014, 16:51
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Enviar datos post en una ventana nueva

Podrías colocar a toda la query string en un objeto literal al cual parsearías como objeto JSON con el método JSON.stringify, le doy una codificación apropiada para pasar los datos a través de la URI con el método encodeURIComponent y luego, en el archivo PHP, lo decodificas con las funciones urldecode y json_decode.

Código Javascript:
Ver original
  1. var obj = {
  2.         foo: "bar",
  3.         bin: "baz",
  4.         ala: "kazam",
  5.         ping: "pong",
  6.         one: "two",
  7.         hello: "world",
  8.         hola: "mundo",
  9.         negro: "blanco",
  10.         heavy: "metal",
  11.         foros: "del web"
  12.     };
  13.  
  14. obj = encodeURIComponent(JSON.stringify(obj));
  15. window.open("ejemplo.php?q=" + obj);

Código PHP:
Ver original
  1. $q = json_decode(urldecode($_GET['q']));
  2.  
  3. foreach ($q as $k => $v){
  4.     echo $k . ': ' . $v . '<br />';
  5. }

El resultado de este ejemplo es lo siguiente:

Código HTML:
Ver original
  1. foo: bar
  2. bin: baz
  3. ala: kazam
  4. ping: pong
  5. one: two
  6. hello: world
  7. hola: mundo
  8. negro: blanco
  9. heavy: metal
  10. foros: del web

He pasado más valores que tú y no tuve ningún inconveniente. Te sugiero tomar este camino.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 19/08/2014, 18:46
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Enviar datos post en una ventana nueva

Hola:

Un viejo artículo: Formularios y enlaces dirigidos a ventanas.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 20/08/2014, 09:13
 
Fecha de Ingreso: abril-2009
Mensajes: 100
Antigüedad: 15 años
Puntos: 0
Respuesta: Enviar datos post en una ventana nueva

Que tal Alexis88 ya probé tu codigo y me sale error por ser demasiados datos. Tendré que buscar otra manera para solucionarlo

Igual gracias por sus respuestas.
  #5 (permalink)  
Antiguo 20/08/2014, 09:25
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Enviar datos post en una ventana nueva

Es muy extraño lo que dices porque a mi no se me muestra ningún error, además, el límite de caracteres que permiten los navegadores, es mucho mayor que el que presento (fuente), tendría que exceder los 255 bytes para que se produzca el error (fuente [3.2.1]). Muéstranos el mensaje de error del que comentas.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #6 (permalink)  
Antiguo 20/08/2014, 09:53
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Enviar datos post en una ventana nueva

Hola:

Me faltan datos... (¿Has leído mi artículo?)...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 20/08/2014, 09:57
 
Fecha de Ingreso: abril-2009
Mensajes: 100
Antigüedad: 15 años
Puntos: 0
Respuesta: Enviar datos post en una ventana nueva

Mira esto me aparece al abrir la nueva ventana:

Request-URI Too Large

The requested URL's length exceeds the capacity limit for this server.


No se si me entendí bien al inicio pero algunas variables que mando a traves del GET contienen una serie de información y en ocasiones puede ser alrededor de 500 datos los que puede contener una variable que mando.

Caricatos si leí el enlace que proporcionaste pero no creo que me sirva, lo que pasa es que yo obtengo una serie de coordenadas de posiciones que tengo almacenadas, entonces uso la geocodificacion inversa para obtener la dirección de cada coordenada y cada una de esas direcciones las debo mandar a un archivo php para poder generar un archivo excel, el problema es que en ocasiones la cantidad de direcciones es demasiada y es por eso que a traves del GET me manda error por la cantidad excesiva de datos.

Pero si con lo que me proporcionaste me ayuda me gustaria que me orientaras como poder hacerlo.

Saludos.

Última edición por sagdec; 20/08/2014 a las 10:08
  #8 (permalink)  
Antiguo 20/08/2014, 10:21
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Enviar datos post en una ventana nueva

La explicación expuesta en el artículo de caricatos es clara: Puedes enviar los datos de un formulario a través de una ventana emergente, teniendo así la posibilidad de utilizar el método POST, el cual soporta una mayor cantidad de datos.

Código HTML:
Ver original
  1. <form action = "ejemplo.php" method = "post" target = "popup" onsubmit = "window.open('', 'popup', 'width=450, height=350')">
  2.     <!-- Aquí irían tus campos -->
  3. </form>

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #9 (permalink)  
Antiguo 20/08/2014, 11:48
 
Fecha de Ingreso: abril-2009
Mensajes: 100
Antigüedad: 15 años
Puntos: 0
Respuesta: Enviar datos post en una ventana nueva

Ya funcionó con la solución de caricatos y la explicación de alexis88 muchas gracias por su tiempo.

saludos.

Etiquetas: php, post, ventana
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 18:11.