TL; DR:任何使用AJAX,d3和PHP從數據庫獲取數據並從中生成圖形的好例子都將不勝感激。使用d3.queue等待AJAX響應
因此,我使用d3基於使用AJAX和PHP從數據庫中提取的數據創建強制圖表,我認爲有幾種方法可以將數據綁定到DOM元素或使用D3。隊列似乎是最合乎邏輯的方法,但我一直在努力尋找將所有這些位一起使用的簡單示例。
所以我的工作AJAX請求是這樣的:
$(document).ready(function() {
$('select[name="locations"]').change(function(){
var location = $(this).val();
$.ajax({
type: 'POST',
url: 'dataselect.php',
data: { l_id: location },
success: function (response) {
console.log(response);
},
});
});
});
我試圖傳遞JSON DOM元素,但沒有運氣提取它,有些人似乎不喜歡這種方式。
,工程的D3是這樣的:
d3.json("test.php", function(error, graph) {
if (error) throw error;... Lots more d3 that I don't think is relevant.
test.php的和dataselect.php是除了dataselect相同先後爲AJAX請求的變量和D3不喜歡它,因爲它是。
所以,我的問題是什麼是最平穩的方式讓d3在運行前「等待」來自AJAX請求的數據?
我猜我需要在函數中包裝一些東西,並將其排列成某種順序,但我真的很難將它綁定在一起。
最後,對不起,我覺得這應該是相當微不足道的,但我已經閱讀了很多問題,迄今尚未設法實現任何解決方案。
編輯:因此,按照d3.request路線,我已經想通了如何發送數據,而AJAX:
d3.selectAll("#onploc")
.on('change', function() {
var location = eval(d3.select(this).property('value'));
console.log(location);//gets value property of selected menu item.
d3.json("dataselect.php?l_id="+location,function(error, data) {
console.log(data);//sends location variable to php to get data back.
})
});
謝謝,我會和D3請求去,我想隊列會更容易些,但我覺得我有錯誤的結束棒子... –