当前位置: 首页 > 面试题库 >

使用Ajax将数据加载到Highcharts中

石超
2023-03-14
问题内容

我正在尝试通过JQUERY
AJAX调用来更新页面加载和选择菜单更改时的高图表。有以[[10,1228800000],[10,1228800000]]格式返回的数据。图表为空白,不对任何数据进行图形处理。

尝试了此处发布的几种解决方案,但没有一个有效。

var chart;
        $(document).ready(function() {


            var options = {
                chart: {
                    renderTo: 'stats',
                    defaultSeriesType: 'spline'
                },
                title: {text:''},
                xAxis: {
                    type: 'datetime'
                },
                yAxis: {},
                series: []
            };
    var month = 'July';
    $.ajax({
        type: "POST",
        data: "month="+month,
        url: "update_visits_chart",
        success: function (data) {

            options.series.push(data);
            chart = new Highcharts.Chart(options);
        }
    });

有什么错误吗?提前致谢。编辑:

最新的代码仍然无法正常工作:

var options = {

            chart: {
                renderTo: 'stats',
                type: 'spline'
            },
            title: {
                text: ''
            },
            xAxis: {

                type:'datetime',
                tickInterval: 30 * 24 * 3600 * 1000,
                dateTimeLabelFormats: {
                    day: '%b %e'
                },
                labels: {
                    rotation: -45,
                    align: 'right'
                }
            },
            yAxis: {
                title: {
                    text: 'Number of visits'
                },
                min: 0
            },
            tooltip: {
                formatter: function() {
                        return Highcharts.dateFormat('%b %e', this.x) +'<br />'+this.y+' visit(s)';
                }
            },
            legend: {
                enabled: true
            },
            credits: {
                enabled: false
            },
            exporting: {
                enabled: false
            },
            series: [{
                name: 'Number of Visits',
                data: []
            }]
        };
        var month = 'July';
        $.ajax({
            type: "POST",
            url: "update_visits_chart",
            data: "month="+month,
            success: function(data){
                options.series[0].data = data;
                chart = new Highcharts.Chart(options);
            }
        });

问题答案:

您必须使用文档中描述的系列对象的setData方法。你的情况是options.series[0].setData(Data)

而且我认为您必须使用将Ajax结果从字符串转换为真实的对象/数组JSON.parse(data)

编辑: @Ricardo
Lohmann:在ajax调用中,他没有指定他期望在响应中使用的dataType,因此jQuery将猜测dataType。但是它无法识别[以JSON
开头的字符串,因此我怀疑他的响应是否将使用正确的mime类型提供服务application/json。因此,指定正确的mime类型也应该可以解决该问题。但我没有发问者完整的ajax响应的示例。所以我也只是猜测。

我建议以下ajax调用:

$.ajax({
    type: "POST",
    url: "update_visits_chart",
    data: {month: month},
    dataType: 'json',
    success: function(data){
        options.series[0].setData(data);
    }
});

@Jugal Thakkar

$.getJSON 只是上述ajax调用的快捷方式,但灵活性较差,因为您的选择较少。



 类似资料:
  • 一段时间以来,我一直在试图弄明白这一点,尽管我在网上发现了各种各样的例子,但我还是完全弄糊涂了,因为似乎没有一个能完全符合我的意图。 我有一个Joomla组件,我正在构建,前端有一个单一的视图。在默认模板('default.php')中创建了两个。一个包含项目列表,另一个为空白。我有代码,让我点击列出的项目之一,并返回该项目唯一的ID。然后,我想在Ajax调用中使用该ID,从数据库中的表中检索数据

  • 问题内容: 我正在使用Select2 JS版本4.0.0-rc.1,并且无法通过远程Ajax方法加载建议。 以下是标记和代码 JavaScript jQuery 服务器返回的Json结果 我完全不确定是否需要编写特定的函数来显示建议,有关Ajax部分的评论指出,我们不应更改结果Json数据。 现在有人请告诉我,让代码正常工作以显示建议还需要做些什么。 我想随着新版本的select2发生了很多变化。

  • 问题内容: 我正在尝试通过一种称为的方法设置项目,到目前为止还可以。但是后来我从中创建了一个arrayList,但我不知何故找不到将这些信息存储到JTable中的方法。问题是我找不到设置固定行数的方法 这是我的代码: 上课开始联赛: 足球俱乐部课程: SportsClub课程(摘要): 最后是LeagueManager,它是一个接口: 有人能帮帮我吗?我已经尝试了好几天。谢谢。 问题答案: “问题

  • 我试图从一个名为的方法中设置项目,到目前为止还不错。但后来我从它创建了一个arrayList,不知何故,我找不到将这些信息存储到JTable中的方法。问题是我找不到设置固定行数的方法 下面是我的代码:

  • 问题内容: 我想在数据库中使用csv文件 问题答案: 由于SQLAlchemy的强大功能,我还在项目中使用了它。它的强大功能来自于与数据库“对话”的面向对象的方式,而不是硬编码难以管理的SQL语句。更不用说,它也快很多。 坦率地回答您的问题,是的!使用SQLAlchemy将数据从CSV存储到数据库中简直是小菜一碟。这是一个完整的工作示例(我使用了SQLAlchemy 1.0.6和Python 2.

  • 我在这里找过类似的帖子,但是我找不到符合我要求的帖子。我试图显示jQuery数据。在UI上,我得到日期参数,并对servlet进行ajax调用。servlet将处理并返回json数据。一旦我得到的数据,我想显示在数据表的结果。但是我的代码不起作用。我是新的数据。这是我的代码: servlet返回的json数据: