Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.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
Onclick使用新数据javascript刷新条形图(morris图表)_Javascript_Api_Charts_Morris.js - Fatal编程技术网

Onclick使用新数据javascript刷新条形图(morris图表)

Onclick使用新数据javascript刷新条形图(morris图表),javascript,api,charts,morris.js,Javascript,Api,Charts,Morris.js,我已经设置了条形图。默认值/页面加载时通过php获取的数据。这一部分很好用(我遵循了网络上的一些例子) 但有些东西不起作用。在控制台中,我看到: TypeError:d未定义 morris.min.js 谁能告诉我,我的代码哪里不正确。Tnx 您需要在getJSON函数中调用setData方法。 您的代码将被重写,以便: $('.show_movement_icon').click(function() { // ... copy lines from your code ... $.g

我已经设置了条形图。默认值/页面加载时通过php获取的数据。这一部分很好用(我遵循了网络上的一些例子)

但有些东西不起作用。在控制台中,我看到:

TypeError:d未定义 morris.min.js


谁能告诉我,我的代码哪里不正确。Tnx

您需要在getJSON函数中调用setData方法。 您的代码将被重写,以便:

$('.show_movement_icon').click(function() {
  // ... copy lines from your code ...
  $.getJSON(url, function(data) {
    //To get only market cap values.
    var market_cap = data.market_cap;

    for(var i=0; i < market_cap.length; i++)
    {
        //example: 06-06-2017 07:04:13
        datum = new Date(market_cap[i][0]).format('d-m-Y h:m:s');

        novetocke += "{ date: '" + datum + "', marketcap: " + market_cap[i][1] + " }, ";
    }

    // I changed the following 3 lines
    novetocke_edit = novetocke.substring(0, novetocke.length-2);
    var chartData = JSON.parse(novetocke_edit);
    morbar.setData(chartData);
  });
});
$('.显示移动图标')。单击(函数(){
//…从代码中复制行。。。
$.getJSON(url、函数(数据){
//只获取市值值。
var market_cap=data.market_cap;
对于(var i=0;i
我还将字符串变量替换为JS数组(
JSON.parse(novetocke_edit)
),因为我认为setData不能使用字符串,需要一个对象。

这是我的版本

$('.show_movement_icon').click(function() {
    valuta_short = $(this).attr('id');
    $('#barchart_valuta').text(valuta_short);

    // URL setup
    url = 'http://www.coincap.io/history/365day/'+valuta_short;

    var arr = [];

    $.getJSON(url, function(data) {
        //To get only market cap values.
        var market_cap = data.market_cap;

        for (var i = 0; i < market_cap.length; i++) {
            datum = new Date(market_cap[i][0]).format('d-m-Y h:m:s');

            // Fill array with data
            arr.push({
                date: datum,
                marketcap: market_cap[i][1]
            });
        }

        // Send array to chart for data update
        morbar.setData(arr);
    });

});
$('.显示移动图标')。单击(函数(){
valuta_short=$(this.attr('id');
$(“#条形图_valuta”).text(valuta_short);
//URL设置
url='1〕http://www.coincap.io/history/365day/“+valuta_short;
var-arr=[];
$.getJSON(url、函数(数据){
//只获取市值值。
var market_cap=data.market_cap;
对于(var i=0;i
我认为我发送的数据格式不正确。我还尝试使用类似JSON.parse的命令将其转换为不同的形式,但我没有得到任何结果。我复制/粘贴了您的代码,点击后图形不会改变。SyntaxError:JSON.parse:在JSON数据的第1行第3列处应为属性名或“}”。我尝试了不同的组合,还对novetocke_edit(组合在一起的字符串)运行了联机JSON验证,但验证失败。基于此,我想我需要帮助设置正确的数据格式。@ghula您需要验证您的novetocke_编辑变量是否是有效的JSON对象。此外,我更愿意不使用JSON字符串。您可以改用JS数组:
var items=[];推送({date:datum.toString(),marketcap:market_cap[i][1]});morbar.setData(项目)因此,您需要像这样重写它,创建
数组并使用它而不是字符串。
{ date: '12-08-2016 03:08:56', marketcap: 0 }, { date: '13-08-2016 03:08:20', marketcap: 1029733 }, { date: '14-08-2016 05:08:30', marketcap: 1584452 }, { date: '15-08-2016 05:08:30', marketcap: 2460141 }, { date: '16-08-2016 05:08:31', marketcap: 2393176 }, { date: '17-08-2016 05:08:31', marketcap: 2752283 }, { date: '18-08-2016 05:08:31', marketcap: 2676743 }, { date: '19-08-2016 05:08:31', marketcap: 2268252 }, { date: '20-08-2016 05:08:31', marketcap: 2040360 }, { date: '21-08-2016 05:08:30', marketcap: 1999935 }, { date: '22-08-2016 05:08:31', marketcap: 2082395 }, .. etc
$('.show_movement_icon').click(function() {
  // ... copy lines from your code ...
  $.getJSON(url, function(data) {
    //To get only market cap values.
    var market_cap = data.market_cap;

    for(var i=0; i < market_cap.length; i++)
    {
        //example: 06-06-2017 07:04:13
        datum = new Date(market_cap[i][0]).format('d-m-Y h:m:s');

        novetocke += "{ date: '" + datum + "', marketcap: " + market_cap[i][1] + " }, ";
    }

    // I changed the following 3 lines
    novetocke_edit = novetocke.substring(0, novetocke.length-2);
    var chartData = JSON.parse(novetocke_edit);
    morbar.setData(chartData);
  });
});
$('.show_movement_icon').click(function() {
    valuta_short = $(this).attr('id');
    $('#barchart_valuta').text(valuta_short);

    // URL setup
    url = 'http://www.coincap.io/history/365day/'+valuta_short;

    var arr = [];

    $.getJSON(url, function(data) {
        //To get only market cap values.
        var market_cap = data.market_cap;

        for (var i = 0; i < market_cap.length; i++) {
            datum = new Date(market_cap[i][0]).format('d-m-Y h:m:s');

            // Fill array with data
            arr.push({
                date: datum,
                marketcap: market_cap[i][1]
            });
        }

        // Send array to chart for data update
        morbar.setData(arr);
    });

});