我正在使用 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>
希望对你有帮助,如果没有,有兴趣的请告诉我。