我正在使用http://www.highcharts.com/plugin-registry/single/17/Annotations,他们建议我保存任何东西,使用
var items = chart.annotations.allItems,
annotationsArr = [],
iLen = items.length - 1;
for( ; iLen >= 0; iLen--) {
annotationsArr[iLen] = items[iLen].options;
}
$.post('my/path/to/save/annotations', annotationsArr);
不幸的是,这是我被卡住的地方。做
$(".result").text(annotationsArr);
给我[object Object],[object Object],[object Object],[object Object]
如果我想将“正确的”数组发布到PHP页面,我该怎么做?我如何在PHP页面上获取数组?做一个console.log(annotationsArr)
给我以下
[UPDATE]
我现在可以使用
提交处理得很好的数据$("#submit").click(function () {
var items = chart.annotations.allItems,
annotationsArr = [],
iLen = items.length - 1;
//alert('DEBUG INFO: '+JSON.stringify(items));
for (; iLen >= 0; iLen--) {
annotationsArr[iLen] = items[iLen].options;
}
$.ajax({
type: "POST",
url: "process.asp",
data: JSON.stringify(annotationsArr),
dataType: JSON
});
});
然而,作为示例的结果数组显示没有颜色,例如
[{
"xAxis": 0,
"yAxis": 0,
"title": "Annotationtitle<br>withlinebreak",
"shape": {
"params": {
"r": 106,
"d": null,
"width": null,
"height": null
}
},
"x": 160,
"y": 122,
"allowDragX": true,
"allowDragY": true,
"anchorX": "left",
"anchorY": "top"
}]
我将return
的{{1}}部分调整为
function getParams(e)
这在下面进行了解决,但不幸的是,这似乎也不起作用!有什么建议吗?
return {
r: shape.r ? getRadius(e) : null,
d: shape.d ? getPath(e) : null,
width: shape.width ? getWidth(e) : null,
height: shape.height ? getHeight(e) : null,
stroke: shape.stroke ? $("#stroke").val() : null,
strokeWidth: shape.strokeWidth ? $("#strokeWidth").val() : 2,
fill: shape.fill ? $("#fill").val() : null
};
更新
形状未被注册,因此我将[{
"xAxis": 0,
"yAxis": 0,
"title": "Annotationtitle<br>withlinebreak",
"shape": {
"params": {
"r": 76,
"d": null,
"width": null,
"height": null,
"stroke": "red",
"strokeWidth": null,
"fill": "#AB3445"
}
},
"x": 144,
"y": 136,
"allowDragX": true,
"allowDragY": true,
"anchorX": "left",
"anchorY": "top"
}]
更改为以下
drop(e)
似乎有效,但还剩下一件事!如果我保存注释,那很好。当我回到屏幕时,它们会很好。
然而,如果我想移动它们然后保存它们,它们就不会被保存在新的位置
因此,对于一个矩形,它有合作
function drop(e) {
Highcharts.removeEvent(document, 'mousemove', step);
// store annotation details
if (annotation) {
annotation.update({
shape: {
params: getParams(e),
"type": $("input[type='radio']:checked").val()
}
});
}
annotation = null;
}
我把它移到了对面的角落,它仍然带着
回来了"x": 116,
"y": 117,
答案 0 :(得分:2)
这个:$(".result").text(annotationsArr);
应该表示为$(".result").text(JSON.stringify(annotationsArr));
- 应该放到.result元素字符串annotationsArr
我如何在PHP页面上获取数组?
这样的事情应该足够了:
<?PHP
$req = $_REQUEST;
echo '<pre>';
print_r($req);
echo '</pre>';
?>