Có một vấn đề mà tôi không thể giải quyết, tôi đã tìm kiếm rất nhiều trên internet nhưng không tìm thấy gì cả.jQuery tải Google Visualization API với AJAX
Tôi có JavaScript này được sử dụng để thực hiện yêu cầu Ajax bằng PHP. Khi yêu cầu được thực hiện, nó gọi một hàm sử dụng API Google Visualization để vẽ một chú thíchtimeline để trình bày dữ liệu.
Kịch bản hoạt động tuyệt vời mà không có AJAX, nếu tôi làm mọi thứ nội tuyến nó hoạt động tốt, nhưng khi tôi cố gắng làm điều đó với AJAX nó không hoạt động !!!
Lỗi mà tôi nhận được là trong khai báo DataTable "dữ liệu", trong Công cụ dành cho nhà phát triển Google Chrome, tôi nhận được Uncaught TypeError: Cannot read property 'DataTable' of undefined
.
Khi tập lệnh bị lỗi, mọi thứ trên trang sẽ bị xóa, nó chỉ hiển thị một trang trống.
Vì vậy, tôi không biết cách làm cho nó hoạt động.
$(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});
}
bạn có thử làm việc trên IE không? – reggie