我需要 JSON 格式和 Flot Chart 插件的值
I need JSON format with values for Flot Chart plugin
我想从 mysql 数据库中获取数据并使用 Flot 插件将其放入图表中,根据 docs 数据格式是一个点数组:[ [x1, y1], [x2, y2], ... ]
。在我的例子中,我想获取日期和销售值并将其放入这个数组中,所以我这样做了:
<?php
$sql = "SELECT * from sales where YEAR(date)='2013'";
$res = mysql_query($sql);
$return = [];
while($row = mysql_fetch_array($res)){
$return[] = [$row['date'],$row['amount']];
}
echo '{ "label": "Sales", "data":'. json_encode($return, JSON_UNESCAPED_UNICODE).'}';
?>
我得到这样的结果:
{ "label": "Sales", "data":[["2013-02-01","52"],["2013-03-01","40"],["2013-03-28","200"]]}
我尝试通过 AJAX:
传递这些信息
var sales;
$.ajax({
url: "scripts/sales.php",
type: "GET",
dataType: "json",
success: function(resp)
{
sales = [$.trim(resp.data)];
console.log(sales);
}
});
但不幸的是我没有得到相同的格式,控制台的结果是这样的:
["2013-02-01,52,2013-03-01,40,2013-03-28,280"]
我想得到这样的相同格式:
[["2013-02-01","52"],["2013-03-01","40"],["2013-03-28","200"]]
我该如何解决?我需要一些帮助。
尝试 json_encode
整个对象,而不是在 PHP 中将字符串与 json_encode 连接起来:
echo json_encode(array("label" => "Sales", "data" => $return));
然后代替
sales = [$.trim(resp.data)];
只需访问普通的 .data 属性:
sales = resp.data;
我想从 mysql 数据库中获取数据并使用 Flot 插件将其放入图表中,根据 docs 数据格式是一个点数组:[ [x1, y1], [x2, y2], ... ]
。在我的例子中,我想获取日期和销售值并将其放入这个数组中,所以我这样做了:
<?php
$sql = "SELECT * from sales where YEAR(date)='2013'";
$res = mysql_query($sql);
$return = [];
while($row = mysql_fetch_array($res)){
$return[] = [$row['date'],$row['amount']];
}
echo '{ "label": "Sales", "data":'. json_encode($return, JSON_UNESCAPED_UNICODE).'}';
?>
我得到这样的结果:
{ "label": "Sales", "data":[["2013-02-01","52"],["2013-03-01","40"],["2013-03-28","200"]]}
我尝试通过 AJAX:
传递这些信息var sales;
$.ajax({
url: "scripts/sales.php",
type: "GET",
dataType: "json",
success: function(resp)
{
sales = [$.trim(resp.data)];
console.log(sales);
}
});
但不幸的是我没有得到相同的格式,控制台的结果是这样的:
["2013-02-01,52,2013-03-01,40,2013-03-28,280"]
我想得到这样的相同格式:
[["2013-02-01","52"],["2013-03-01","40"],["2013-03-28","200"]]
我该如何解决?我需要一些帮助。
尝试 json_encode
整个对象,而不是在 PHP 中将字符串与 json_encode 连接起来:
echo json_encode(array("label" => "Sales", "data" => $return));
然后代替
sales = [$.trim(resp.data)];
只需访问普通的 .data 属性:
sales = resp.data;