我想从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"]]
我该如何解决?我想要一些帮助。
答案 0 :(得分:2)
尝试json_encode
整个对象,而不是在PHP中将字符串与json_encode连接起来:
echo json_encode(array("label" => "Sales", "data" => $return));
然后代替
sales = [$.trim(resp.data)];
只需访问普通的.data属性:
sales = resp.data;