日期:2014-05-17  浏览次数:20473 次

[问题]js数组和php数组的重口味关系
这两天在学习js 的图表生成.其中需要给js 传递这么一个数组.这是范例内的数组.所以现在的问题是

有没有快捷的方式通过php来生成这个数组? 还是需要根据这个数组结构自己人肉的用php来各种组合?



JScript code

  series:[
                {
                    type:"column",
                    name:"阿里巴巴",
                    data:[3, 2, 1, 3, 4]
                },
                {
                    type:"column",
                    name:"John",
                    data:[2, 3, 5, 7, 6]
                },
                {
                    type:"column",
                    name:"Joe",
                    data:[4, 3, 3, 9, 0]
                },
                {
                    type:"spline",
                    name:"Average",
                    data:[3, 2.67, 3, 6.33, 3.33],
                    marker:{
                        lineWidth:2,
                        lineColor:Highcharts.getOptions().colors[3],
                        fillColor:"white"
                    }
                },
                {
                    type:"pie",
                    name:"Total consumption",
                    data:[
                        {
                            name:"Jane",
                            y:13,
                            color:"#4572A7" // Jane"s color
                        },
                        {
                            name:"John",
                            y:23,
                            color:"#AA4643" // John"s color
                        },
                        {
                            name:"Joe",
                            y:19,
                            color:"#89A54E" // Joe"s color
                        }
                    ],
                    center:[100, 80],
                    size:100,
                    showInLegend:false,
                    dataLabels:{
                        enabled:false
                    }
                }
            ]



------解决方案--------------------
newnew, 你这是哪个js库的?

我觉得首先要分析下前后端需要交互哪些数据.
1. 图表要用到的数据肯定是要前后交互的;
2. 图表展示用到的渲染选项, 比如showInLegend:false这样的数据得看你的业务, 如果你的图表有一些渲染项是后台配置的, 那也需要交互
3. 即便渲染项需要后台配置, 通常也不需要暴露全部渲染项给后台, 因此需要分析出要暴露给后台配置管理的渲染项
4. 搞清楚这些后, 再来制定前后台通讯的协议, 比如可以将数据分为数据和渲染项两部分, 前端拿到之后, 自己进行业务处理.

你讲下是什么图表控件及具体业务, 可以具体给你看看
------解决方案--------------------
所有的数据都包装在 chart = new Highcharts.Chart() 参数中
单独分割出来可能会对 js 代码组装产生困难

似乎没有看到说明文档,可考虑从他提供的48个样例中抽取参数,从 Chart({ 开始,到 }); 结束,进行分析
然后写成若干个类

工作量应该不算太大

他是 js 代码级的 json 格式,而不是数据交换的 json 格式。你用 php 产生的 json 作为参数是不会有问题的