Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Amchart和Ajax获取格式不正确的数据_Php_Javascript_Ajax_Format_Amcharts - Fatal编程技术网

Php Amchart和Ajax获取格式不正确的数据

Php Amchart和Ajax获取格式不正确的数据,php,javascript,ajax,format,amcharts,Php,Javascript,Ajax,Format,Amcharts,我想使用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("SE

我想使用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
           });
       };
不显示任何图表

但如果我通过以下方式更改var“数据”: 数据=[{name:“toto”,计数:10,颜色:{name:“toto”,计数:10,颜色:{FF0F00}]; 在Ajax查询的成功中,这是正确的!我得到图表

所以问题是我从php文件中得到的格式。。。我找不到要返回的正确格式

编辑: 如果我这样做:

这印在第页: [{“姓名”:“布鲁塞尔”、“伯爵”:“4”、“颜色”:“FF0F00”},{“姓名”:“奇美”、“伯爵”:“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(法语)的更多信息,请查看此项:

您在这里实际询问的是什么?目前,它看起来像是“帮助我调试代码”,而不是问一个更广泛的问题,这将有助于人们搜索它。您是否尝试将数据格式化为json?在数组中使用“json_encode()”。我需要一种返回数据的方法。我也尝试过使用JSON,但也不起作用:(请给我们使系统工作的代码,我们会帮助您。amCharts似乎支持JSON数据。但是,它实际上不是有效的JSON。我为Rails编写了本教程,但是:数据格式部分可能会帮助您:
$.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;
          [...]
});