Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌图表和Ajax响应';s_Javascript_Jquery_Google Visualization - Fatal编程技术网

Javascript 谷歌图表和Ajax响应';s

Javascript 谷歌图表和Ajax响应';s,javascript,jquery,google-visualization,Javascript,Jquery,Google Visualization,我在这方面已经做了很长时间了。我似乎不明白为什么我不能填充我的图表。我正在使用谷歌图表api。当我将数据传递给 new google.visualization.DataTable(getData(playWithData)) 它返回“表没有列” 这是我当前对控制器的ajax调用 function getData(callback){ $.ajax({ type: "GET", url: '/lead_sources', dataType: 'jso

我在这方面已经做了很长时间了。我似乎不明白为什么我不能填充我的图表。我正在使用谷歌图表api。当我将数据传递给

new google.visualization.DataTable(getData(playWithData))
它返回“表没有列”

这是我当前对控制器的ajax调用

function getData(callback){
    $.ajax({
      type: "GET",
      url: '/lead_sources',
      dataType: 'json'
    }).done(function(data){
      callback(data);
    })
  }

  function playWithData(data){
    console.log(data);
  }

  var data = new google.visualization.DataTable(getData(playWithData))
在控制台内部

目前,我正在使用来自控制器的虚拟数据来让ajax调用正常工作。格式与文档类似


我不确定我是错过了什么,还是做了完全错误的事情。任何帮助都会很好

您的问题是异步逻辑以您不期望的方式执行的组合,以及两个函数都不返回任何数据的事实

一旦检索到
数据
,您需要在回调函数本身中创建
数据表。试试这个:

function getData(){
    $.ajax({
        type: "GET",
        url: '/lead_sources',
        dataType: 'json'
    }).done(function(data){
        var dataTable = new google.visualization.DataTable(data);
        // amend settings of dataTable here, as needed

        var table = new google.visualization.Table(document.getElementById('table_div'));
        table.draw(dataTable, { showRowNumber: true });
    })
}

getData(); // call when required  

谢谢你的帮助!我现在有一些东西出现在我的图表上!!花了这么多时间尝试了一百万种不同的东西。谢谢没问题,很乐意帮忙。
function getData(){
    $.ajax({
        type: "GET",
        url: '/lead_sources',
        dataType: 'json'
    }).done(function(data){
        var dataTable = new google.visualization.DataTable(data);
        // amend settings of dataTable here, as needed

        var table = new google.visualization.Table(document.getElementById('table_div'));
        table.draw(dataTable, { showRowNumber: true });
    })
}

getData(); // call when required