C'è un problema che non riesco a risolvere, ho cercato molto su internet ma non ho trovato nulla.jQuery caricare l'API di visualizzazione di Google con AJAX
Ho questo JavaScript che viene utilizzato per eseguire una richiesta Ajax da PHP. Al termine della richiesta, chiama una funzione che utilizza l'API di visualizzazione di Google per disegnare una data annotated per presentare i dati.
Lo script funziona alla grande senza AJAX, se faccio tutto in linea funziona benissimo, ma quando provo a farlo con AJAX non funziona !!!
L'errore che ottengo è nella dichiarazione del "Data" DataTable, negli Strumenti per sviluppatori di Google Chrome ottengo un Uncaught TypeError: Cannot read property 'DataTable' of undefined
.
Quando lo script raggiunge l'errore, tutto nella pagina viene cancellato, mostra solo una pagina vuota.
Quindi non so come farlo funzionare.
$(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});
}
hai provato a lavorare su IE? – reggie