如何在 PHP 中创建 jqplot 数据数组

How to create a jqplot data array in PHP?

本文关键字:jqplot 数据 数组 创建 PHP      更新时间:2023-09-26

我正在使用ajax连接到PHP脚本,然后检索jqplot jQuery图形库所需的图形坐标。

问题是我很难构造一个合适的PHP数组,然后可以将其转换为jqplot可以读取的jQuery数组。

下面是从 PHP 文件中检索数组的代码:

$.ajax({
    type: 'POST',
    dataType: "json",
    url: "behind_curtains.php",
    data: {
        monthSelected: month_option_selected
    },
    success: function (data) {
        var stored_data = data;
        alert(stored_data);
    }
});
return stored_data;
}

这是创建 jqplot 的代码

jQuery.jqplot('chartdiv-data', [], {
    title: 'Plot With Options',
    dataRenderer: stored_data,
    axesDefaults: {
        labelRenderer: jQuery.jqplot.CanvasAxisLabelRenderer
    },
    axes: {
        xaxis: {
            label: "Day",
        },
        yaxis: {
            label: "data"
        }
    }
});

如果您能帮我在behind_curtains.php文件中创建正确的数据数组,那就太好了!

编辑 1图形坐标数组应采用以下形式:

[[[1,2],[3,5],[5,13]]]

基本上,我需要以某种方式编写 php 代码,该代码可以输出以该形式存储数据的数组。

谢谢

溶液:

*behind_curtains.php*

我把一个数组放在一起,它简单地生成一个形式的字符串,形式为 [[1,2],[3,5],[5,13]]。然后,我将字符串存储在一个变量中,并以以下形式回显该变量:

echo json_encode($stored_data);

在用户方面,这是我的代码的样子:

<script type="text/javascript">
$("document").ready(function() {
        $.ajax({
            type: 'POST',
            dataType:"json",
            url: "behind_curtains.php",
            data: {
                monthSelected: month_option_selected},
            success: function(data){                    
            var stored_data = eval(data) ;  
/* generate graph! */
$.jqplot('chartdiv-weight', [stored_data], {
 title: month, 
axesDefaults: {
    labelRenderer: jQuery.jqplot.CanvasAxisLabelRenderer
  },
  axes: {
    xaxis: {
      label: "Day",
    },
    yaxis: {
      label: "data"
    }
  }   
});
        }
        });
    }

}});</script>

我希望这有所帮助,如果没有,任何感兴趣的人请告诉我。

您可以返回stored_data,但您需要在AJAX调用之前声明它,如最底部的示例所示。您还必须使用: async: false否则您将无法以这种方式返回数据。出于同样的原因,如果您愿意,可以使用getJSON()代替。

在格式化检索到的数据时,我在这里回答了一个类似的问题。您需要相应地构建数组来表示您的数据。

如果你能展示你的JSON到底是什么样子的,那么我可以给你一个更精确的答案。