首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google可视化图表ajax数据

Google可视化图表ajax数据
EN

Stack Overflow用户
提问于 2014-05-17 21:12:09
回答 2查看 517关注 0票数 0

我正在尝试在烧瓶中使用AJAX调用动态地呈现一个google可视化图表,以设置数据。用户输入输入,然后单击一个链接,该链接调用ajax函数来获取数据。"/ajax_test“视图将返回一个json对象,但问题是我不知道如何将数据正确地传递回DataTable函数。如何将从ajax获得的json数据传递给绘图图函数的变量?

图表功能:

代码语言:javascript
复制
<script type="text/javascript">
function drawChart(){
     var data = new google.visualization.DataTable(jsondata);
      var options = {
             explorer: {},
          }; //end options

    var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
    chart.draw(data, options);
  }
</script>

Ajax函数:

代码语言:javascript
复制
<script type=text/javascript>
$(function() {
$('a#DrawChart').bind('click', function() {
  $.getJSON($SCRIPT_ROOT + '/ajax_test',
   {//input data sent to view}
  , function(data) {
    var jsondata = data.test_json;
    drawChart();

  });
  return false;
   });
  });
</script>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-18 08:19:30

此方法不知道jsondata来自何处:

代码语言:javascript
复制
function drawChart() {
    var data = new google.visualization.DataTable(jsondata);
    ...
}

添加jsondata作为参数:

代码语言:javascript
复制
function drawChart(jsondata) {
    var data = new google.visualization.DataTable(jsondata);
    ...
}

然后在Ajax调用中将jsondata传递给方法:

代码语言:javascript
复制
function(data) {
    var jsondata = data.test_json;
    drawChart(jsondata);
}
票数 0
EN

Stack Overflow用户

发布于 2014-05-18 06:16:31

我使用下面的代码做了类似的事情,这是一个jinja2示例,因此您必须修改代码(更改jsonData var初始化的方式):

代码语言:javascript
复制
<script type="text/javascript">
        //load the Google Visualization API and the chart
    google.load('visualization', '1', {'packages': ['corechart']});

    google.setOnLoadCallback (createChart);

    var jsonData = {{ value_columns | tojson | safe }}

    function createChart() {
        var dataTable = new google.visualization.DataTable(jsonData);
        var chart = new google.visualization.LineChart(document.getElementById('chart'));
        //define options for visualization
        var options = {is3D: 'no', title: 'Some Title' };

        attachRedrawForTab(chart, dataTable, options);
        attachRedrawForAccord(chart, dataTable, options);
        //draw our chart
        chart.draw(dataTable, options);
    }

</script>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23716118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档