javascript - Chart.js 数据不会更新

标签 javascript jquery ajax chart.js

我正在尝试使用ajax请求获取数据来更新chart.js。 ajax请求没问题。但响应不会更新图表。 这就是我获取数据的方式:

<script type="text/javascript">
$(document).ready(function(){
    $("#data-row").hide();
    $("#btnCari").click(function(){
        var periode = $("select[name='tahun']").val();
        $.ajax({
            url:"<?php echo site_url('laporan/get_keuntungan/')?>"+periode,
            success:function(data){
                var graph = data;
                    data: {
                        labels: ["Januari", "Februari", "Maret", "April", "Mei", "Juni", "Juli","Agustus",'September','Oktober','November','Desember'],
                        datasets: [
                            {
                                label: "Penjualan",
                                fill: true,
                                lineTension: 0.3,
                                backgroundColor: gradient1,
                                borderColor: gradient1,
                                borderCapStyle: 'butt',
                                borderDash: [],
                                borderDashOffset: 0.0,
                                borderJoinStyle: 'miter',
                                borderWidth: 1,
                                pointBorderColor: gradient1,
                                pointBackgroundColor: "#fff",
                                pointBorderWidth: 1,
                                pointHoverRadius: 5,
                                pointHoverBackgroundColor: gradient1,
                                pointHoverBorderColor: "rgba(220,220,220,1)",
                                pointHoverBorderWidth: 2,
                                pointRadius: 1,
                                pointHitRadius: 10,
                                data: [graph],
                                spanGaps: false
                            }
                        ]
                    }
                });
            $("#data-row").fadeOut("slow");
            $("#data-row").fadeIn("slow");

            }
        })
    });
    })

ajax 响应如下所示:

'10,20,30,40,50,10,20,30,30'

但它不会更新图表。

最佳答案

您可能忘记了两件事。

首先:您需要选择图表,如下所示:
var ctx = document.getElementById("myChart").getContext('2d');

使用:

var myChart = new Chart(ctx, {
type: 'bar',
data: {//your code to build chart}

第二:myChart.update();

chartjs.org/docs/latest/
chartjs.org/docs/latest/developers/updates.html

关于javascript - Chart.js 数据不会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48778718/

相关文章:

javascript - 在 keyup 函数运行时保持 iOS 键盘打开

javascript - 如何使用 JQuery 设置同级元素的 HTML

javascript - HTML 评论框自动不增加高度

javascript - 动态创建的元素上的事件绑定(bind)?

javascript - 在 jquery 对话框中插入表单

javascript - 单页应用程序和 <form> 元素

JavaScript - AJAX 数据请求如何出现在 url 中?

javascript - ReplaceWith() 之后的日期选择器

javascript - 通过单击元素来更改元素的文本。 jQuery

javascript - 拦截 XMLHttpRequest 并修改 responseText