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请求去,我想队列会更容易些,但我觉得我有错误的结束棒子... –