Note that there are some explanatory texts on larger screens.

plurals
  1. POI can't return my json object
    primarykey
    data
    text
    <p>I'm having trouble returning a JSON object, instead all I get is an undefined variable.</p> <p>This code is supposed to return a json element from an API. It seems to work in the success: function, but once I try and take that data elsewhere it just displays 'undefined'</p> <pre><code>var datas; datas = getdata(); //getdata(); createChart(datas) alert('2datass'+datas); // this returns undefined function createChart(data){ alert(data); //outputs undefined } function getdataaa(){ alert('ajax'); $.ajax({ type: "GET", dataType: "json", url: "API URL", success: function(data){ alert(data); // WORKS! and outputs my JSON data /* for(var i =0;i &lt;= data.length-1;i++) { var item = data[i]; datas = datas + { type: 'column', name: item.name, data: [item.difference] }; } */ //Neither of these returns seems to work return jQuery.parseJSON(data); return data; } }); }; </code></pre> <p>Any help would be appreciated.</p> <p>SOLUTION</p> <p>Thanks to all who have helped.</p> <p>This seems to do the trick</p> <pre><code> var datas; datas = getData(); //getdata(); alert('2datass'+datas); console.log(datas); createChart(datas); function createChart(data){ alert('createChart'+data); var dynamicData; for(var i =0;i &lt;= data.length-1;i++) { var item = data[i]; dynamicData = dynamicData + { type: 'column', name: item.name, data: [item.difference] }; } alert('dynamic' +dynamicData); // works, but says undefined before - outputs dynamic undefined[object Object][object Object][object Object][object Object][object Object] var series = [dynamicData,{ type: 'column', name: 'Jane', data: [300, 30] }, { type: 'column', name: 'John', data: [-200, 50] }, { type: 'column', name: 'Joe', data: [444, -25] }, { type: 'column', name: 'Jobe', data: [444, -25] }, { type: 'column', name: 'Jooe', data: [444, -25] },{ type: 'column', name: 'Jane', data: [300, 30] } , { type: 'pie', name: 'Total consumption', data: [{ name: 'Jane', y: 13 //color: '#4572A7' // Jane's color }, { name: 'John', y: 23 //color: '#AA4643' // John's color }, { name: 'Joe', y: 19 //color: '#89A54E' // Joe's color }], center: [30, 80], size: 100, showInLegend: false, dataLabels: { enabled: false } }]; var options = { chart: { renderTo: 'container' }, title: { text: 'Account Managers Leaderboard' }, xAxis: { categories: ['Month on Month', 'Day on Day'] }, tooltip: { formatter: function() { var s; if (this.point.name) { // the pie chart s = ''+ this.point.name +': '+ this.y +' sales'; } else { s = ''+ this.x +': '+ this.y; } return s; } }, labels: { items: [{ html: 'Total proportion of sales &lt;br /&gt;this month', style: { left: '40px', top: '-5px', color: 'black' } }] }, series: series }; $(document).ready(function() { var chart; chart = new Highcharts.Chart(options); }); } function getData(){ //alert('ajax'); var receivedData; // store your value here $.ajax({ type: "GET", dataType: "json", url: "API URL", async: false, success: function(data){ alert('data'+data); //works receivedData = data; } }); return receivedData; }; </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload