可能重複:
Trying to load Google charts through a jQuery ajax call嘗試通過(jQuery的)AJAX調用加載谷歌圖表
我一直在這個整天,不能想辦法讓這個工作。我對jQuery不是很熟悉。
我在做什麼:我正在嘗試編寫一個輪詢函數,用於加載結果並在不刷新的情況下將其顯示在同一頁面中。
到目前爲止,我有這樣的jQuery代碼:
$("#post_yes").click(function(){
$("#result").html(ajax_load); //loads ajaxloader.gif
$.post(
"query.php",
{answer: "yes", poll_id: 5},
function(responseText){
$.getScript(scriptUrl, function(){
$("#result").html(responseText);
});
},
"html"
);
});
它應該查詢query.php並插入到數據庫中投票。然後我編寫了query.php來返回yes和no值,然後在該頁面上生成一個圖表。這是類似的東西,我有:
google.load('visualization', '1.0', {'packages':['corechart']}); // Load the Visualization API and the piechart package.
google.setOnLoadCallback(drawChart); // Set a callback to run when the Google Visualization API is loaded.
function drawChart()
{
// Create the data table.
var data = new google.visualization.DataTable();
data.addColumn('string', 'Answers');
data.addColumn('number', 'Number');
data.addRows([
['Yes', $yes_value],
['No', $no_value],
]);
// Set chart options
var options =
{
'title' :'Do you Like my smile?',
'colors' :['#f25a5a','#5aa5f2'],
'fontName' :'Verdana',
'backgroundColor' :'#e7e7e7',
'chartArea' :{left:0,top:10,width:"400",height:"400"},
'is3D' : true,
};
var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
使用Chrome的調試器我注意到,在query.php任何JavaScript並沒有在我原來的網頁運行,這就是爲什麼圖表ISN調試頁面一段時間後沒有被顯示。
我給你的問題大師:有沒有什麼辦法可以顯示來自query.php的圖表。或者有什麼方法可以在用戶投票後顯示圖表(包括用戶提交的數據)? 我還可以採取其他方法嗎?
儘管我對JavaScript/JQuery不太流利,但我可能會遵循任何代碼(甚至僞代碼,任何一點幫助!),你們都可以。
我不確定你的意思是「將drawChart函數移到你的js文件中」,我正在從Google的服務器調用js。我已經把drawChart()函數放在一個單獨的drawChart.js文件中,並完成了其餘的修改。我仍然沒有看到任何事情發生。 這是我的代碼在我的主頁:http://pastebin.com/x6JU5DPF 在我的drawchart.js文件中,我有這個:http://pastebin.com/KMhnM8pX 而我的PHP文件,我甚至不詢問數據庫,我只是吐出示例數據,看看它是否有效。這裏是文件:http://pastebin.com/1EWMg6FM 編輯:上面的json是有效的根據jsonlint.com – Xecure
如果你直接調用drawChart({「yes」:14,「no」:9})函數,沒有Ajax電話 - 你能看到圖表嗎?例如點擊(函數(){drawChart({「yes」:14,「no」:9});}); _ – Irishka
data.addRows function google from api expect a multidimensional array,so你需要像[[「yes」,14],[「no」,9]]那樣按照你以前的格式傳遞它 – Irishka