0

我正在制作一个网站,用户可以在其中上传将显示为图表的数据

HTML:<div id="data"></div>

test1.php 输出:,-0.05,-0.07,-0.07,-0.07,0.14,0.14,0.09,0.07,0.07,0.07,0.07,0.65,0.63,0.63,0.63,0.63,0.63,0.58,0.56,0.56,0.56,0.56,0.84,0.79,0.77,0.77

js/jquery:

$(document).ready(function(){

    $("#data").load("test1.php");
    var data = $("#data").text().split(",").slice(1);

    new Chartist.Line(".ct-chart", {

        labels: [data],
        series:[ data ]
        }, {
        fullWidth: true,
        height: 650,
        chartPadding: {
        right: 0
     }

   }); 

});

该图未显示,我收到错误

未捕获的错误:在优化缩放步骤时超过了最大迭代次数

但是,如果我$("#data").text().split(",").slice(1)在控制台中输入并将输出粘贴到标签和系列中,它可以正常工作,如果您将数据设为普通数组并且不从页面获取数据,它也可以工作

4

1 回答 1

1

我假设您使用该$.load函数运行 xhr 请求。XHR 请求通常是异步的(谷歌首字母缩写词 AJAX 的定义) - 因此您尝试输入的数据在您需要的时候并不存在。它仅在所有 http 请求完成后从 php 页面返回——这很可能是在Charlist.new()函数触发之后。

看看这里的文档:http: //api.jquery.com/load/

如果您改为尝试这样的事情(未测试):

$(document).ready(function(){
$.ajax("test1.php", {
    success:function(response) {
        var data = response.split(",").slice(1);

        new Chartist.Line(".ct-chart", {
                labels: [data],
                series:[ data ]
            }, {
                fullWidth: true,
                height: 650,
                chartPadding: {
                    right: 0
                }
            });
        });
    } 
});

编辑:好的,我更新了一些代码。正如我所说,这是未经测试的。但这应该会引导您朝着正确的方向前进。现在就试试。如果它不能 100% 工作,请进行一些测试和调试,也许你会学到一些东西..

于 2016-01-12T05:49:28.207 回答