0

当我将anychart与ajax一起使用时,我遇到了一些问题。因为 anychart 的数据取决于用户选择的复选框,所以我必须对数据进行 ajax 处理。图表的基本形式很好,但选定的数据在图表上不起作用

这是我的代码。

<body>
 <div>
  <input type='checkbox' name='question_id' value='1'>
  <input type='checkbox' name='question_id' value='2'>
  <input type='checkbox' name='question_id' value='3'>
  <input type='checkbox' name='question_id' value='4'>
  <input type='checkbox' name='question_id' value='5'>
  <input type='checkbox' name='question_id' value='6'>
 <div>
 <button id='report'>report</button>
 <div id='container'></div>

</body>

我的ajax和anychart设置如下

<script>
  $(function() {
   $('#report').click(function() {
     $.ajax({
       type: 'POST',
       data: {
        ids: $("input[name='question_id']:checked").map(function () {
        return $(this).val();
        }).get()
       },



     });

   });
  });

  anychart.onDocumentReady(function() {
   var dataSet = anychart.data.set(<%= select_data %>);
   var chart = anychart.column();
   ......
   ......
   chart.container('container');
   chart.draw();

  });
</script>

我在想我必须重新渲染 anychart 才能加载 ajax 数据,但我不知道如何让它工作

4

2 回答 2

0
anychart.onDocumentLoad(function() {
            $.getJSON("dataurl", function(result) {
                var dataSet = anychart.data.set(result);
                var chart = anychart.column();

                chart.column(dataSet.mapAs({ value: 1, x: 0 })).name('Inventory');
                chart.column(dataSet.mapAs({ value: 2, x: 0 })).name('Sales');

                chart.grid(0, { layout: 'vertical' })
                chart.barGroupsPadding(3)

                chart.legend(true);
                chart.title('Compare sales strategy')
                chart.yScale().minimum(0);
                chart.container('container');
                chart.draw();
            })
        });
于 2019-12-12T16:46:28.840 回答
0

您似乎没有对数据应用更改。

当您收到新数据时,您应该将其应用于图表,可以这样完成:

数据集 = anychart.data.set(newData);

或者

图表.数据(新数据);

此外,在您的代码图表中,数据变量在 onDocumentReady 函数中是本地的。

于 2017-03-09T11:13:58.563 回答