Amchart 和 Ajax 获取格式不正确的数据
Amchart and Ajax getting data in incorrect format
我想使用AmChart并从php获取图表的数据。
这是我的PHP文件:
$colors = Array("#FF0F00","#FF6600","#FF9E01","#FCD202","#F8FF01","#B0DE09","#04D215","#0D8ECF","#0D52D1","#2A0CD0","#8A0CCF","#CD0D74","#754DEB","#DDDDDD","#999999","#333333","#000000");
$datas = $bdd->query("SELECT count(*) as count, rest.name as name
FROM command com, zone z, dinningroom dr, restaurant rest
WHERE com.zone = z.number
AND z.dinningroom = dr.number
AND dr.restaurant = rest.number
GROUP BY rest.number;");
$i=0;
while($data = $datas->fetch())
{
$dataList[$i]=array("name"=>$data['name'],"count"=>$data['count'],"color"=>$colors[$i]);
$i++;
}
echo json_encode($dataList);
?>
$datas有很好的数据。SQL请求很好,并返回我想要的。
这是我的 JavaScript 和我的 Ajax 请求:
$.ajax({
url: 'statComPerMenu.php',
failure: function (data) {
alert('fail: ' + data);
},
success: function(data) {
var statComPerMenuChart;
// SERIAL CHART
statComPerMenuChart = new AmCharts.AmSerialChart();
statComPerMenuChart.dataProvider = data;
statComPerMenuChart.categoryField = "name";
// the following two lines makes chart 3D
statComPerMenuChart.depth3D = 20;
statComPerMenuChart.angle = 30;
// AXES
// category
var categoryAxis = statComPerMenuChart.categoryAxis;
categoryAxis.labelRotation = 90;
categoryAxis.dashLength = 5;
categoryAxis.gridPosition = "start";
// value
var valueAxis = new AmCharts.ValueAxis;
valueAxis.dashLength = 5;
statComPerMenuChart.addValueAxis(valueAxis);
// GRAPH
var graph = new AmCharts.AmGraph();
graph.valueField = "count";
graph.colorField = "color";
graph.balloonText = "[[name]]: [[count]]";
graph.type = "column";
graph.lineAlpha = 0;
graph.fillAlphas = 1;
statComPerMenuChart.addGraph(graph);
// WRITE
statComPerMenuChart.write("chartdiv");
} //Success
});
};
不显示任何图表。
但是,如果我通过以下方式更改变量"数据": data = [{名称: "toto", 计数: 10, 颜色: "#FF0F00"},{名称: "toto", 计数: 10, 颜色: "#FF0F00"}];从 Ajax 查询成功,这工作正常!我得到图表...
所以问题在于我从 php 文件中获得的格式......我找不到要返回的正确格式。
编辑:如果我这样做:
success: function(data) {
$("#omg").html(data);
[...]
chart.dataProvider = data;
[...]
}
这打印在页面上:[{"名称":"布鲁塞尔","计数":"4","颜色":"#FF0F00"},{"名称":"Chimay","计数":"2","颜色":"#FF6600"}]并显示一个空图表。
如果复制粘贴打印的表格作为数据:
success: function(data) {
$("#omg").html(data);
[...]
chart.dataProvider = [{"name":"Brussels","count":"4","color":"#FF0F00"},{"name":"Chimay","count":"2","color":"#FF6600"}];
[...]
}
图表显示良好。
通过这样做来解决:
$.getJSON("statComPerMenu.php", // le fichier qui recevra la requête
null, // les paramètres
function(data){ // la fonction qui traitera l'objet reçu
[...]
chart.dataProvider = data;
[...]
});
查看有关 $.getJSON 的更多信息(法语):http://www.hooba.ca/blog/2008/echange-dobjets-json-entre-php-et-javascript-facile-grace-a-jquery/
相关文章:
- Angular promise从JSON API返回不正确的数据
- 在jquery mobile中,post方法数据发送不正确
- D3:“SVG4601:SVG 路径数据的格式不正确,无法完全解析
- 为什么它说输入数据数组的格式不正确 jqchart.
- NodeJS > req.query 返回不正确的数据
- Amchart 和 Ajax 获取格式不正确的数据
- HTML5 画布图像数据不正确的 rgb 值
- 煎茶触摸 2 模型关联保存不正确的数据进行存储
- 这个jQuery AJAX帖子保存数据不正确吗?
- 从 MySQL 数据库获取数据时节点.js流不正确
- 选择的数据不正确
- 画布图绘制数据不正确
- JSON数据格式不正确
- jQuery数据表排序不正确
- 日期在Highcharts图中显示不正确,时间数据不规则
- 使用jQuery构建基本数据绑定,但变量的作用域不正确
- 为什么选中复选框它's将显示不正确的数据值
- 为什么我的功能显示不正确的数据
- AWS Dynamo表对某些记录写入数据不正确
- 当使用getImageData时,在移动设备上获得大图像的不正确数据