ale*_*lex 14 javascript php mysql json flot
我正在使用jquery flot图表来表示我的数据.这里的例子的jsfiddle我做了显示图表所需的JSONS的应该是什么样子.
数据源来自具有以下输出示例的MySql存储过程:

我需要在图表中表示count为innumbery轴上的不同值堆叠的name值,x轴上的值,以及另一个图表中的值outnumber.(在堆积的条形图中).
- 数据系列应该匹配,因此特定标签应该针对客户.
这是我到目前为止的PHP:
$query = $this->db->query("call GetAllCustomersV2($id, $year, $month, $day)");
$customers = $query->result_array();
foreach ($customers as $customer) {
if($customer['innumber'] != null){
$chartInbound['name'] = $customer['name'];
$chartInbound['label'] = $customer['innumber'];
$chartInbound['count'] = $customer['count'];
$chartInbound['customerid'] = $customer['id'];
array_push($out['chartInbound'], $chartInbound);
}
if($customer['outnumber'] != null){
$chartOutbound['name'] = $customer['name'];
$chartOutbound['label'] = $customer['outnumber'];
$chartOutbound['count'] = $customer['count'];
$chartOutbound['customerid'] = $customer['id'];
array_push($out['chartOutbound'], $chartOutbound);
}
}
Run Code Online (Sandbox Code Playgroud)
输出print_r($out['chartInbound']);是:
Array
(
[0] => Array
(
[name] => 1st Online Solutions
[label] => 01-02
[count] => 577
[customerid] => 129
)
[1] => Array
(
[name] => Bookngo
[label] => 01-02
[count] => 2
[customerid] => 95
)
[2] => Array
(
[name] => Boutixury
[label] => 07
[count] => 1
[customerid] => 14
)
[3] => Array
(
[name] => Cruise Village
[label] => 01-02
[count] => 16
[customerid] => 25
)
[4] => Array
(
[name] => Cruise Village
[label] => 00
[count] => 1
[customerid] => 25
)
[5] => Array
(
[customer] => Cruise Village
[label] => 07
[countInbound] => 16
[minsInbound] => 125
[customerid] => 25
)
...................
)
Run Code Online (Sandbox Code Playgroud)
输出print_r(json_encode($out['chartInbound']));是:
[
{
"name": "1st Online Soultions"
"label": "01-02",
"count": "577",
"customerid": "129"
},
{
"name": "Bookngo"
"label": "01-020",
"count": "2",
"customerid": "129"
},
{
"name": "Boutixury"
"label": "07",
"count": "1",
"customerid": "14"
},
{
"name": "Cruise Village"
"label": "07",
"count": "16",
"customerid": "25"
},
.................
]
Run Code Online (Sandbox Code Playgroud)
但这不是很有帮助.
问:如何从查询数据中创建上述jsfiddle中显示的动态JSON?
Rai*_*ica 10
使用循环遍历数据并构建要使用的flot newData和newTicks数组:
var newData = [];
var newLabels = []; // only used to get index since newData has objects in it
var newTicks = [];
for (var i = 0; i < dataFromServer.length; i++) {
var datapoint = dataFromServer[i];
var tick = newTicks.indexOf(datapoint.name);
if (tick == -1) {
tick = newTicks.length;
newTicks.push(datapoint.name);
}
var index = newLabels.indexOf(datapoint.label);
if (index == -1) {
index = newLabels.length;
newLabels.push(datapoint.label);
newDataPoint = {
label: datapoint.label,
data: []
};
newDataPoint.data[tick] = [tick, datapoint.count];
newData.push(newDataPoint);
} else {
newData[index].data[tick] = [tick, datapoint.count];
}
}
for (var i = 0; i < newTicks.length; i++) {
newTicks[i] = [i, newTicks[i]];
}
newLabels = null;
Run Code Online (Sandbox Code Playgroud)
我还必须更改您的工具提示生成,因为您的代码仅在完成和排序的所有数据集时才有效.它现在也更简单.
| 归档时间: |
|
| 查看次数: |
2252 次 |
| 最近记录: |