Foros del Web » Programando para Internet » Javascript »

Generar Graficas javascript con datos desde php

Estas en el tema de Generar Graficas javascript con datos desde php en el foro de Javascript en Foros del Web. Buenas, he descargado de internet una libreria para hacer graficos con javascript, la verdad quedan muy bonitos, pero no se como hacer para rellenarlo desde ...
  #1 (permalink)  
Antiguo 03/10/2012, 04:25
Avatar de 60NZ4  
Fecha de Ingreso: mayo-2012
Ubicación: 404 Not found
Mensajes: 112
Antigüedad: 11 años, 11 meses
Puntos: 2
Generar Graficas javascript con datos desde php

Buenas, he descargado de internet una libreria para hacer graficos con javascript, la verdad quedan muy bonitos, pero no se como hacer para rellenarlo desde php

aqui pongo el codigo que se utiliza desde el archivo html

Código Javascript:
Ver original
  1. var chart;
  2.             var legend;
  3.  
  4.             var chartData = [{
  5.                 country: "Lithuania",
  6.                 value: 260
  7.             }, {
  8.                 country: "Ireland",
  9.                 value: 201
  10.             }, {
  11.                 country: "Germany",
  12.                 value: 65
  13.             }, {
  14.                 country: "Australia",
  15.                 value: 39
  16.             }, {
  17.                 country: "UK",
  18.                 value: 19
  19.             }, {
  20.                 country: "Latvia",
  21.                 value: 10
  22.             }];
  23.  
  24.             AmCharts.ready(function () { //amcharts.ready llama a esta funcion cuando todo en la pagina ya esta cargado
  25.                 // PIE CHART
  26.                 chart = new AmCharts.AmPieChart();
  27.                 chart.dataProvider = chartData;
  28.                 chart.titleField = "country";
  29.                 chart.valueField = "value";
  30.                 chart.outlineColor = "#FFFFFF";
  31.                 chart.outlineAlpha = 0.8;
  32.                 chart.outlineThickness = 2;
  33.                 // this makes the chart 3D
  34.                 chart.depth3D = 15;
  35.                 chart.angle = 30;
  36.  
  37.                 // WRITE
  38.                 chart.write("chartdiv");
  39.             });


Código HTML:
Ver original
  1. <!-- aqui es donde escribe el grafico -->  <div id="chartdiv" style="width: 100%; height: 400px;"></div>


lo que yo querria hacer es rellenar ese array con datos desde php , pero no tengo ni idea de como empezar, imagino que sera utilizando ajax, pero no se como hacerlo.

La estructura del array tampoco lo entiendo mucho como deberia rellenarla desde php
__________________
Nadie nace aprendido, un experto es simplemente alguien que ya ha cometido muchos errores

Última edición por 60NZ4; 03/10/2012 a las 04:44
  #2 (permalink)  
Antiguo 03/10/2012, 04:54
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Generar Graficas javascript con datos desde php

pero si te das cuenta lo único que tienes que hacer es que tu php te devuelva un arreglo de tipo JSON sea por ajax o por el método normal
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #3 (permalink)  
Antiguo 03/10/2012, 05:47
Avatar de 60NZ4  
Fecha de Ingreso: mayo-2012
Ubicación: 404 Not found
Mensajes: 112
Antigüedad: 11 años, 11 meses
Puntos: 2
Respuesta: Generar Graficas javascript con datos desde php

buenas gracias por tu respuesta, lo he probado con json , pero el grafico desaparece, no se donde meter la funcion de amcharts.ready , porque si quito esto el grafico no sale, pero obtengo los datos, es decir llevas razon con eso debo cojer los datos y he probado que si que salen, pero ahora no se mostrarlos para que salga el grafico, no se como retocar la funcion

-------
EDITO
-------

Código Javascript:
Ver original
  1. function manejaJSON() {
  2.        
  3.         var http_request = new XMLHttpRequest();
  4.         var url = "respuestajson.php"; // Esta URL deberia devolver datos JSON
  5.          
  6.         // Descarga los datos JSON del servidor.
  7.         http_request.onreadystatechange = function (){
  8.        
  9.                 if (http_request.readyState == 4) {
  10.                     if (http_request.status == 200) {
  11.                    
  12.                       var cadCodificadaJSON = http_request.responseText;
  13.                      
  14.                       var objDatos = eval("(" + cadCodificadaJSON + ")"); //Creamos el objeto utilizando la cadena codificada
  15.                
  16.                       //Ahora con el objeto desplegamos los datos mandados desde el servidor
  17.                       document.getElementById("divNombre").innerHTML = objDatos.nombre[0];
  18.                       document.getElementById("divVeces").innerHTML = objDatos.veces[0];
  19.                                  var chartData = [{
  20.                                     country: objDatos.nombre[0],
  21.                                     value: objDatos.veces[0]
  22.                                 }, {
  23.                                     country: objDatos.nombre[1],
  24.                                     value: objDatos.veces[1]
  25.                                 }, {
  26.                                     country: objDatos.nombre[2],
  27.                                     value: objDatos.veces[2]
  28.                                 }, {
  29.                                     country: objDatos.nombre[3],
  30.                                     value: objDatos.veces[3]
  31.                                 }, {
  32.                                     country: objDatos.nombre[4],
  33.                                     value: objDatos.veces[4]
  34.                                 }, {
  35.                                     country: objDatos.nombre[5],
  36.                                     value: objDatos.veces[5]
  37.                                 }];
  38.                     return chartData;
  39.              
  40.                    
  41.                    
  42.                     } else {
  43.                       alert("Ocurrio un problema con la URL.");
  44.                     }
  45.                    
  46.                     http_request = null;
  47.                   }
  48.                 }
  49.        
  50.        
  51.         http_request.open("GET", url, true);
  52.         http_request.send(null);
  53.         }
  54.            
  55.             manejaJSON();
  56.             var chart;
  57.             var legend;
  58.        
  59.             AmCharts.ready(function () {
  60.                 // PIE CHART
  61.                 chart = new AmCharts.AmPieChart();
  62.                 chart.dataProvider = chartData;
  63.                 chart.titleField = "country";
  64.                 chart.valueField = "value";
  65.                 chart.outlineColor = "#FFFFFF";
  66.                 chart.outlineAlpha = 0.8;
  67.                 chart.outlineThickness = 2;
  68.                 // this makes the chart 3D
  69.                 chart.depth3D = 15;
  70.                 chart.angle = 30;
  71.  
  72.                 // WRITE
  73.                 chart.write("chartdiv");
  74.             });

este es el nuevo codigo, pero no se como cargar el array chartData en donde corresponde
__________________
Nadie nace aprendido, un experto es simplemente alguien que ya ha cometido muchos errores

Última edición por 60NZ4; 03/10/2012 a las 09:21
  #4 (permalink)  
Antiguo 03/10/2012, 09:28
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Generar Graficas javascript con datos desde php

Este es un ejemplo de como hacerlo con PHP y Ajax usando el Framework jQuery

Código Javascript:
Ver original
  1. $.ajax({
  2.     url: 'consulta.php',
  3.     type: 'post',
  4.     dataType: 'json',
  5.     data: {id: 4},
  6.     success: function(data){
  7.         chart = new AmCharts.AmPieChart();
  8.         chart.dataProvider = data;
  9.         chart.titleField = "country";
  10.         chart.valueField = "value";
  11.         chart.outlineColor = "#FFFFFF";
  12.         chart.outlineAlpha = 0.8;
  13.         chart.outlineThickness = 2;
  14.  
  15.         chart.depth3D = 15;
  16.         chart.angle = 30;
  17.        
  18.         chart.write("chartdiv");
  19.  
  20.     }
  21. });

En donde la consulta.php te devuelva un json
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #5 (permalink)  
Antiguo 04/10/2012, 05:04
Avatar de 60NZ4  
Fecha de Ingreso: mayo-2012
Ubicación: 404 Not found
Mensajes: 112
Antigüedad: 11 años, 11 meses
Puntos: 2
Respuesta: Generar Graficas javascript con datos desde php

una ultima cosa que creo que es en lo que estoy fallando,

que estructura deberia de ser
Código Javascript:
Ver original
  1. chartData = [{
  2.                 nombre: "Lithuania",
  3.                 valor: 260
  4.             }, {
  5.                 nombre: "Ireland",
  6.                 valor: 201
  7.             }, {
  8.                 nombre: "Germany",
  9.                 valor: 65
  10.             }, {
  11.                 nombre: "Australia",
  12.                 valor: 39
  13.             }, {
  14.                 nombre: "UK",
  15.                 valor: 19
  16.             }, {
  17.                 nombre: "Latvia",
  18.                 valor: 10
  19.             }
  20.             ];

¿para meterlo como php?

actualmente lo tengo asi :

Código PHP:
Ver original
  1. $cartData= array(
  2.     "Australia" => 20,
  3.     "Ireland"    => 24,
  4.     "Germany"    => 24
  5.    
  6.     )
  7. );

pero claro asi no puede ser porque el de javascript es un array de arrays

no se como ponerlo
__________________
Nadie nace aprendido, un experto es simplemente alguien que ya ha cometido muchos errores
  #6 (permalink)  
Antiguo 04/10/2012, 06:19
 
Fecha de Ingreso: abril-2010
Mensajes: 10
Antigüedad: 14 años
Puntos: 2
Respuesta: Generar Graficas javascript con datos desde php

con php mete tus data en un array y conviertelo a JSON format para pasarlo al frontend.

$response['data'] = json_encode($array);

echo $response;

luego la respuesta ajax sera completamente JSON (JavaScript Object Notation).

y puedes hacer lo que deseas

Saludos
  #7 (permalink)  
Antiguo 04/10/2012, 09:58
Avatar de 60NZ4  
Fecha de Ingreso: mayo-2012
Ubicación: 404 Not found
Mensajes: 112
Antigüedad: 11 años, 11 meses
Puntos: 2
Respuesta: Generar Graficas javascript con datos desde php

=) muchas gracias a los dos porfin he conseguido que cargue, ha tardado pero merece la pena



muchas gracias

un saludo
__________________
Nadie nace aprendido, un experto es simplemente alguien que ya ha cometido muchos errores

Etiquetas: ajax, funcion, html, php, graficos
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:02.