java我正在尝试使用 Google Chart API 创建折线图。我正在尝试通过 AJAX 帖子使用 JSON 为数据表设置数据。
我有一个适用于饼图的版本,但我不知道如何为折线图执行此操作。
下面是我如何使用 ajax 帖子创建图表。
function drawLineGraph()
{
$.post("loadGraph.php",
{
type: "line"
},
function (result)
{
var data = new google.visualization.DataTable(result);
var options = {
title: "Line Graph Test"
};
var chart = new google.visualization.LineChart(document.getElementById("lineChart"));
chart.draw(data, options);
}, "json"
);
}
下面是 loadGraph.php 的代码
print json_encode(test());
function test()
{
$array = array();
if ($_POST['type'] == "line")
{
$array['cols'][] = array('type' => 'string');
$array['cols'][] = array('type' => 'number');
$temp = array();
$array['row'][] = array('v' => (string) "20-01-13");
$array['row'][] = array('v' => (int) 35);
$array['row'][] = array('v' => (string) "21-01-13");
$array['row'][] = array('v' => (int) 30);
}
}
虽然没有出现错误,但折线图有点显示,但没有线,好像数据为0。下面是图表显示的截图
下面是 JSON 内容的输出。
{"cols":[{"type":"string"},{"type":"number"}],"row":[{"c":[{"v":"20-01-13"},{"v":22}]},{"c":[{"v":"21-01-13"},{"v":24}]},{"c":[{"v":"22-01-13"},{"v":27}]}]}
感谢您的任何帮助,您可以提供。
更新 我试图按照@davidkonrad 的建议去做,但我现在遇到了一个不同的问题。我已将 PHP 数组的行定义更改为行,如下所示:
$array['cols'][] = array('type' => 'string');
$array['cols'][] = array('type' => 'number');
$array['rows'][] = array('c' => "20-01-13");
$array['rows'][] = array('v' => 35);
$array['rows'][] = array('c' => "21-01-13");
$array['rows'][] = array('v' => 30);
但是现在当图表加载时,我得到Cannot read property '0' of undefined
了应该显示图表的位置。
下面是现在生成 JSON 的方式
{"cols":[{"type":"string"},{"type":"number"}],"rows":[{"c":"20-01-13"},{"v":35},{"c":"21-01-13"},{"v":30}]}
我看不到如何更改数组以使其与 davidkonrad 提供的 JSON 匹配