Foros del Web » Programando para Internet » PHP »

enviar datos para crear grafica

Estas en el tema de enviar datos para crear grafica en el foro de PHP en Foros del Web. hola, una ayuda, tengo dos paginas en las cuales en una obtengo datos y los mando por un form a otra pagina, en la otra ...
  #1 (permalink)  
Antiguo 21/10/2013, 12:25
 
Fecha de Ingreso: agosto-2013
Ubicación: queretaro
Mensajes: 78
Antigüedad: 10 años, 8 meses
Puntos: 1
enviar datos para crear grafica

hola, una ayuda, tengo dos paginas en las cuales en una obtengo datos y los mando por un form a otra pagina, en la otra pagina recibo los datos y se crea una grafica con jpgraph,
ya lo hace bien, pero quisiera que cuando envio los datos a la otra pagina que se cree la grafica pero que me aparezca en la primera pagina,???

1.- intente con java scrip pero no octube resultados solo atraigo la imagen pero no me envia los datos

tambien creo que si doy click abajo de donde tenga ya los resultados me aparezca la grafica pero no pude.


alguien sabe com hacer esto que practicamente es que aparezca una grafica en mi propia pagina siendo esta generada en otra ??
  #2 (permalink)  
Antiguo 21/10/2013, 13:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: enviar datos para crear grafica

¿como recibes los datos en la otra pagina?
  #3 (permalink)  
Antiguo 21/10/2013, 13:48
 
Fecha de Ingreso: agosto-2013
Ubicación: queretaro
Mensajes: 78
Antigüedad: 10 años, 8 meses
Puntos: 1
Respuesta: enviar datos para crear grafica

asi

$hortalizas = unserialize($_POST['hortalizas']);
$hortalizas1 = unserialize($_POST['hortalizas1']);



$grafico = new Graph(700, 600, 'auto');
$grafico->SetScale("textint");
$grafico->title->Set("Ejemplo de Grafica");
$grafico->xaxis->title->Set("Dias");
$grafico->xaxis->SetTickLabels($hortalizas);
$grafico->yaxis->title->Set("Numero de Pedidos");
$barplot1 =new BarPlot($hortalizas1);
// Un gradiente Horizontal de morados
$barplot1->SetFillGradient("#BE81F7", "#E3CEF6", GRAD_HOR);
// 30 pixeles de ancho para cada barra
$barplot1->SetWidth(30);
$grafico->Add($barplot1);
$grafico->Stroke();

si me lo hace pero lo tengo en una pagina diferente y quisiera que me aparezca en la primera
  #4 (permalink)  
Antiguo 21/10/2013, 13:57
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 1 mes
Puntos: 96
Respuesta: enviar datos para crear grafica

Para que no tengas problemas mejor envialas por session
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.
  #5 (permalink)  
Antiguo 21/10/2013, 14:10
 
Fecha de Ingreso: agosto-2013
Ubicación: queretaro
Mensajes: 78
Antigüedad: 10 años, 8 meses
Puntos: 1
Respuesta: enviar datos para crear grafica

Cita:
Iniciado por SkAr88 Ver Mensaje
Para que no tengas problemas mejor envialas por session
no si esta bien y manda todo y creo la grafica, lo que quiero es que la grafica me aparezca en la primera hoja donde mando los datos

1 hoja creo el form
2 hoja muestro la grafica

en vez de esto en la primera mandar y autodireccionarme a la primera pero mostrando la grafica en la prmera


lo haria todo en la primera pero siempre sale un error de jpgraph, que direcciono, pero vi un ejemplo y lo hacen en la misma pero nomas direccionan lo hacen en la hoja dos y lo muestran en la 1
  #6 (permalink)  
Antiguo 21/10/2013, 14:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: enviar datos para crear grafica

Cambialo a que sea por $_GET y luego en donde quieras mostrar la gráfica haces simplemente:
Código HTML:
Ver original
  1. <img src="archivoquegeneralagrafica.php?dato1=foo&dato2=bar

Así puedes mostrar la gráfica en la misma pagina, pero tienes que mandar los datos por GET (o como te dice SkAr88, usar una sesión).

Saludos.
  #7 (permalink)  
Antiguo 21/10/2013, 16:33
 
Fecha de Ingreso: agosto-2013
Ubicación: queretaro
Mensajes: 78
Antigüedad: 10 años, 8 meses
Puntos: 1
Respuesta: enviar datos para crear grafica

Cita:
Iniciado por GatorV Ver Mensaje
Cambialo a que sea por $_GET y luego en donde quieras mostrar la gráfica haces simplemente:
Código HTML:
Ver original
  1. <img src="archivoquegeneralagrafica.php?dato1=foo&dato2=bar

Así puedes mostrar la gráfica en la misma pagina, pero tienes que mandar los datos por GET (o como te dice SkAr88, usar una sesión).

Saludos.
ok, cambie post por get y puse lo de img src pero no obtengo nada, creo no entiendo como seria eso, me podrias explicar mas de manera logica si puedes claro je :P
  #8 (permalink)  
Antiguo 21/10/2013, 19:42
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 1 mes
Puntos: 96
Respuesta: enviar datos para crear grafica

lo otro que puedes hacer es usar AJAX
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.
  #9 (permalink)  
Antiguo 21/10/2013, 19:49
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: enviar datos para crear grafica

Tal como te digo, primero revisa si usando la URL puedes generar tu gráfica ej:
Código:
http://host/archivo.que.genera.grafica.php?dato1=a&dato2=b
Si puedes ver en tu navegador la gráfica, entonces ya lo puedes generar poner en un tag <img>.

Saludos.
  #10 (permalink)  
Antiguo 22/10/2013, 09:47
 
Fecha de Ingreso: agosto-2013
Ubicación: queretaro
Mensajes: 78
Antigüedad: 10 años, 8 meses
Puntos: 1
Respuesta: enviar datos para crear grafica

ok, si mando los datos por url,
pagina 2: prueba.php?hortalizas=a%3A8%3A%7Bi%3A0%3Bi%3A1%3Bi %3A1%3Bi%3A

eso es en la pagina 2 ahora como lo mostraría en la pagina 1, como seria que hay si ya es donde no entiendo
  #11 (permalink)  
Antiguo 22/10/2013, 09:54
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: enviar datos para crear grafica

Ya te dije, usa una etiqueta <img> y pon la misma URL y listo.
  #12 (permalink)  
Antiguo 22/10/2013, 10:33
 
Fecha de Ingreso: agosto-2013
Ubicación: queretaro
Mensajes: 78
Antigüedad: 10 años, 8 meses
Puntos: 1
Respuesta: enviar datos para crear grafica

Cita:
Iniciado por GatorV Ver Mensaje
Ya te dije, usa una etiqueta <img> y pon la misma URL y listo.
ok, asi:

<img src="http://pallevar.com.mx/prueba.php?hortalizas=">

las variables que mando son arreglos entonces van subiendo dependiendo de el tamaño del arreglo

me quedaria asi
<img src="http://pallevar.com.mx/prueba.php?hortalizas=a&hortalizas1=a">
y sale la grafica en blanco ahora le doy clic en el boton de graficar y me manda a la pagina 2 aunque ponga header('Location: stats.php'); no me obedece solamente obedece cuando lo pongo antes del metodo de graficar
  #13 (permalink)  
Antiguo 22/10/2013, 11:34
 
Fecha de Ingreso: agosto-2013
Ubicación: queretaro
Mensajes: 78
Antigüedad: 10 años, 8 meses
Puntos: 1
Respuesta: enviar datos para crear grafica

mira checa esto, pagina 1 despues de obtener la informacion la mando asi

pagina 1

Código HTML:
Ver original
  1. <input type="hidden" name="hortalizas" value='<?php echo serialize($array2)?>'></input>
  2.   <input type="hidden" name="hortalizas1" value='<?php echo serialize($array1)?>'></input>
  3.   <input type="submit" value="Crear grafica" onclick="cargar()">
  4.  
  5.  
  6.  <script>
  7.         function cargar(){
  8.        
  9.             var nombre= "'.$array2.'";
  10.             var horas= "'.$array1.'";
  11.             var url="http://pallevar.com.mx/prueba.php?hortalizas="+nombre+"&hortalizas1="+horas;
  12.             fi = document.getElementById('grafica');
  13.             var imagen = document.createElement('img');
  14.             imagen.src=url
  15.             fi.appendChild(imagen);
  16.         }
  17.      </script>
  18.        
  19.    
  20. <div id="grafica">
  21.  
  22. </div>

y recibo en la pagina 2


Código PHP:
Ver original
  1. $hort = unserialize($_GET['hortalizas']);
  2. $hort1 = unserialize($_GET['hortalizas1']);
  3.  
  4.  
  5.  
  6. $grafico = new Graph(700, 600, 'auto');
  7. $grafico->SetScale("textint");
  8. $grafico->title->Set("Ejemplo de Grafica");
  9. $grafico->xaxis->title->Set("Dias");
  10. $grafico->xaxis->SetTickLabels($hort);
  11. $grafico->yaxis->title->Set("Numero de Pedidos");
  12. $barplot1 =new BarPlot($hort1);
  13. // Un gradiente Horizontal de morados
  14. $barplot1->SetFillGradient("#BE81F7", "#E3CEF6", GRAD_HOR);
  15. // 30 pixeles de ancho para cada barra
  16. $barplot1->SetWidth(30);
  17. $grafico->Add($barplot1);
  18. $grafico->Stroke();
  #14 (permalink)  
Antiguo 22/10/2013, 11:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: enviar datos para crear grafica

Se ve bien tu código, solo te falta usar el serialize justamente en tus variables de javascript tal como las pones en tus inputs.
  #15 (permalink)  
Antiguo 22/10/2013, 11:56
 
Fecha de Ingreso: agosto-2013
Ubicación: queretaro
Mensajes: 78
Antigüedad: 10 años, 8 meses
Puntos: 1
Respuesta: enviar datos para crear grafica

hay si como seria no tengo la sintaxis para esto, y cuando busco me salen muchas cosas que no creo sirvan, tu sabes
  #16 (permalink)  
Antiguo 22/10/2013, 12:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: enviar datos para crear grafica

Exactamente igual como la tienes en el input...
  #17 (permalink)  
Antiguo 23/10/2013, 09:29
 
Fecha de Ingreso: agosto-2013
Ubicación: queretaro
Mensajes: 78
Antigüedad: 10 años, 8 meses
Puntos: 1
Respuesta: enviar datos para crear grafica

hola de nuevo al parecer no me ha funcionado lo he intentando varias veces como abajo te lo muestro

1.-
Código Javascript:
Ver original
  1. <script>
  2.         function cargar(){
  3.        
  4.  
  5.             var serialize('nombre') = "'.$array2.'";
  6.             var serialize('horas') = "'.$array1.'";
  7.            
  8.             var url="http://pallevar.com.mx/prueba.php?hortalizas="+nombre+"&hortalizas1="+horas;
  9.             fi = document.getElementById('grafica');
  10.             var imagen = document.createElement('img');
  11.             imagen.src=url
  12.             fi.appendChild(imagen);
  13.         }
  14.      </script>


2.-
Código Javascript:
Ver original
  1. <script>
  2.         function cargar(){
  3.        
  4.  
  5.             var nombre = "'.$array2.'";
  6.             var horas = "'.$array1.'";
  7.            
  8.             serialize(nombre);
  9.             serialize(horas);
  10.            
  11.             var url="http://pallevar.com.mx/prueba.php?hortalizas="+nombre+"&hortalizas1="+horas;
  12.             fi = document.getElementById('grafica');
  13.             var imagen = document.createElement('img');
  14.             imagen.src=url
  15.             fi.appendChild(imagen);
  16.         }
  17.      </script>


3.-

Código Javascript:
Ver original
  1. <script>
  2.         function cargar(){
  3.        
  4.  
  5.             var nombre = "'.$array2.'";
  6.             var horas = "'.$array1.'";
  7.             var url="http://pallevar.com.mx/prueba.php?hortalizas="+ serialize(nombre);+"&hortalizas1="+serialize(horas);;
  8.             fi = document.getElementById('grafica');
  9.             var imagen = document.createElement('img');
  10.             imagen.src=url
  11.             fi.appendChild(imagen);
  12.         }
  13.      </script>

Etiquetas: Ninguno
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 09:07.