cargar google charts a través de una llamada ajax

Estoy intentando llamar a Google Chart después de hacer clic en un enlace. Así es como se ve mi función:

function getGraphData(id) { var ajax_url = 'ajaxlibrary/get-graph-data'; $.ajax({ type: 'POST', url: ajax_url, dataType: 'html', data: ({ id : id }), cache: false, success: function(data) { $('a').removeClass("selected"); $('#link_'+id).addClass("selected"); alert(data); }, }); } 

Entonces, lo que estoy tratando de lograr aquí es cargar un gráfico diferente para otro similar, así que digamos que tengo gráficos de política, gráficos de deportes, etc. No sé dónde colocar el código API de Google, porque parece que es simplemente no funciona …

EDITAR: edité la función de esta manera:

  $.ajax({ type: "POST", dataType: "html", data: {id: id}, url: '' + 'ajaxlibrary/get-charts', success: function(datas) { console.log(datas); var data = google.visualization.arrayToDataTable([ datas ]); var options = { title: 'My Daily Activities' }; var chart = new google.visualization.PieChart(document.getElementById('chart_div')); chart.draw(data, options); } }); 

pero tengo problemas con el envío de este flujo de datos desde mi archivo php ajax:

 echo '[\'Task\', \'Hours per Day\'], [\'Work\', 10], [\'shit\', 50], [\'loop\', 25], [\'poop\', 15]'; 

La respuesta no es una matriz 2D válida. Si pongo los valores en el archivo javascript manualmente, funciona, así que el problema está en algún lugar de la respuesta.

Puede cargar las cartas de Google con la llamada Ajax utilizando el siguiente código.

 $.ajax({ url: 'https://www.google.com/jsapi?callback', cache: true, dataType: 'script', success: function(){ google.load('visualization', '1', {packages:['corechart'], 'callback' : function() { $.ajax({ type: "POST", dataType: "json", data: {id: YOURIDHERE}, url: '' + 'ajaxlibrary/get-charts', success: function(jsondata) { var data = google.visualization.arrayToDataTable(jsondata); var options = {title: 'My Daily Activities'}; var chart = new google.visualization.PieChart(document.getElementById('chart_div')); chart.draw(data, options); } }); ]); } }); return true; } }); 

puede cargar cualquier otro tipo de gráfico en lugar de solo el corechart usando la API de Google.