Hay un problema que no puedo resolver, he estado buscando mucho en Internet pero no he encontrado nada.jQuery carga la API de visualización de Google con AJAX
Tengo este JavaScript que se utiliza para hacer una solicitud de Ajax por PHP. Cuando se realiza la solicitud, llama a una función que utiliza la API de visualización de Google para dibujar una línea de tiempo anotada para presentar los datos.
La secuencia de comandos funciona muy bien sin AJAX, si hago todo en línea, funciona muy bien, pero cuando intento hacerlo con AJAX, ¡no funciona!
El error que recibo se encuentra en la declaración de la "DataTable DataTable", en Google Chrome Developer Tools obtengo un Uncaught TypeError: Cannot read property 'DataTable' of undefined
.
Cuando la secuencia de comandos llega al error, todo en la página se borra, solo muestra una página en blanco.
Así que no sé cómo hacerlo funcionar.
$(document).ready(function(){
// Get TIER1Tickets
$("#divTendency").addClass("loading");
$.ajax({
type: "POST",
url: "getTIER1Tickets.php",
data: "",
success: function(html){
// Succesful, load visualization API and send data
google.load('visualization', '1', {'packages': ['annotatedtimeline']});
google.setOnLoadCallback(drawData(html));
}
});
});
function drawData(response){
$("#divTendency").removeClass("loading");
// Data comes from PHP like: <CSV ticket count for each day>*<CSV dates for ticket counts>*<total number of days counted>
// So it has to be split first by * then by ,
var dataArray = response.split("*");
var dataTickets = dataArray[0];
var dataDates = dataArray[1];
var dataCount = dataArray[2];
// The comma separation now splits the ticket counts and the dates
var dataTicketArray = dataTickets.split(",");
var dataDatesArray = dataDates.split(",");
// Visualization data
var data = new google.visualization.DataTable();
data.addColumn('date', 'Date');
data.addColumn('number', 'Tickets');
data.addRows(dataCount);
var dateSplit = new Array();
for(var i = 0 ; i < dataCount ; i++){
// Separating the data because must be entered as "new Date(YYYY,M,D)"
dateSplit = dataDatesArray[i].split("-");
data.setValue(i, 0, new Date(dateSplit[2],dateSplit[1],dateSplit[0]));
data.setValue(i, 1, parseInt(dataTicketArray[i]));
}
var annotatedtimeline = new google.visualization.AnnotatedTimeLine(document.getElementById('divTendency'));
annotatedtimeline.draw(data, {displayAnnotations: true});
}
¿Has intentado trabajar en IE? – reggie