Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌图表中的实时图表_Javascript_Json_Charts_Google Visualization - Fatal编程技术网

Javascript 谷歌图表中的实时图表

Javascript 谷歌图表中的实时图表,javascript,json,charts,google-visualization,Javascript,Json,Charts,Google Visualization,我不知道在StackOverflow中是否已经有太多的要求,但我只是太累了,对自己的能力感到失望。我做这个图表已经三个月了,但没有成功。不管怎样,我再次尝试谷歌图表,我正在寻求帮助 我有一个json格式的livedata.php(时间戳(名为ts)、ph、meat是我数据库中的数据值),显示: [{"ts":"12","ph":736,"moist":92},{"ts":"27","ph":0,"moist":0},{"ts":"21","ph":192,"moist":24},{"ts":"1

我不知道在StackOverflow中是否已经有太多的要求,但我只是太累了,对自己的能力感到失望。我做这个图表已经三个月了,但没有成功。不管怎样,我再次尝试谷歌图表,我正在寻求帮助

我有一个json格式的livedata.php(时间戳(名为ts)、ph、meat是我数据库中的数据值),显示:

[{"ts":"12","ph":736,"moist":92},{"ts":"27","ph":0,"moist":0},{"ts":"21","ph":192,"moist":24},{"ts":"15","ph":0,"moist":0}]
也就是说“ts”(时间戳('d'))显示了一个月中的一个特定日期(本例中的月份是8月)。“ph”和“湿度”是特定日期的总体值。 显然,我在这里制作图表,我知道我是一个充满雄心壮志的哑巴,我正在尝试创建一个活生生的图表,看起来像这样

现在我的问题是,我发现下面的代码适用于他们的示例,但尝试使用PHP JSON失败

function drawChart() {
    var jsonData = $.ajax({
        url: 'livedata.php',
        dataType: 'json',
        async: false
    })

    .done(function (results) {
        var data = new google.visualization.DataTable(jsonData);
        data.addColumn('datetime', 'time_stamp');
        data.addColumn('number', 'ph');
        data.addColumn('number', 'moist');
        $.each(results, function (i, row) {
            data.addRow([
                (new Date(row.time_stamp)),
                parseFloat(row.ph),
                parseFloat(row.moist)]);
        });
        var chart = new google.visualization.LineChart($('#chart').get(0));
        chart.draw(data, {
            title: 'Soil Analysis'
        });
    });

}
// load chart lib
google.load('visualization', '1', {
    packages: ['corechart']
});
// call drawChart once google charts is loaded
google.setOnLoadCallback(drawChart);

这里有几个问题,我会尽力帮助

首先,使用当前版本的谷歌图表

使用此-->

jsapi
是一个旧版本

不是这个-->

这只会更改
load
语句

google.charts.load('current', {
  callback: drawChart,
  packages: ['corechart']
});

至于ajax
async:false
已被弃用,请将其删除


接下来,数据表的构造函数只接受特定格式的json数据
在这里找到-->

把论点留白就行了

var data = new google.visualization.DataTable();
最后,发布的json示例不包含
time\u stamp

看起来像是
ts
,您可以尝试改用当前月份

推荐类似以下内容的内容

google.charts.load('current', {
  callback: drawChart,
  packages: ['corechart']
});

function drawChart() {
  $.ajax({
    url: 'livedata.php',
    dataType: 'json'
  }).done(function (results) {
    var data = new google.visualization.DataTable();
    data.addColumn('date', 'time_stamp');
    data.addColumn('number', 'ph');
    data.addColumn('number', 'moist');

    $.each(results, function (i, row) {
      var today = new Date();

      data.addRow([
        new Date(today.getFullYear(), today.getMonth(), row.ts),
        parseFloat(row.ph),
        parseFloat(row.moist)
      ]);
    });

    var chart = new google.visualization.LineChart($('#chart').get(0));
    chart.draw(data, {
      title: 'Soil Analysis'
    });
  });
}
? :) 我想问一下,如果不使用var today=date(),如何从数据库中获取准确的月份和日期。因为date()显示当前日期