2016-04-20 2 views
1

На какое-то время я пытаюсь заполнить amChart на основе функции javascript, которую я создал. Я хочу установить множество свойств диаграммы, которые не изменяются, как переменная, которую я могу использовать во множестве функций, которые создают или заполняют диаграмму. Мой код:Не удается получить amChart для заполнения на основе функции

var chartProperties = { 
    "theme": "light", 
    "type": "serial", 
    "startDuration": 1, 
    "dataProvider": [], 
    "rotate": false, 
    "categoryField": "organisatie", 
     "valueAxes": [ { 
     "gridColor": "#FFFFF", 
     "minimum": 0, 
     "gridAlpha": 0.2, 
     "dashLength": 0 
     } ], 
     "gridAboveGraphs": true, 
     "startDuration": 1, 
     "graphs": [ { 
     "balloonText": "[[category]]: <b>[[value]]</b>", 
     "fillColorsField": "fillcolor", //Dit veld heb ik meegegeven vanuit SQL functie en bevat de HEX kleurcodes BD 
     "fillAlphas": 0.8, 
     "lineAlpha": 0.2, 
     "type": "column", 
     "valueField": "score" 
     } ], 
     "chartCursor": { 
     "categoryBalloonEnabled": false, 
     "cursorAlpha": 0, 
     "zoomable": false 
     }, 
     "categoryAxis": { 
     "gridPosition": "start", 
     "gridAlpha": 0, 
     "tickPosition": "start", 
     "tickLength": 20 
     }, 
     "export": { 
     "enabled": true 
     } 

}; 

var chart = AmCharts.makeChart("chartaveragescore", chartProperties); 
var organization = $("#organization").val(); 
var indicator = $("#indicators").val(); 
var funcid = "fill_chart_average_score"; 

var dataChart = $.getJSON('functions/getfunctions.php', { 
    "organization":organization, 
    "indicator":indicator, 
    "funcid":funcid}); 

function updateOrganizationAverageScore() { 

    chart.dataProvider = dataChart; 
    chart.validateData(); 

} 

Я не понимаю, что я делаю неправильно. Могу ли я установить $ .getJSON в качестве переменной? Буду признателен за любую оказанную помощь.

ответ

0

Я уже решил это сам. Я посмотрел на Stack и обнаружил, что не могу установить var = с $.getJSON, а затем использовать его позже, потому что мне не хватает обратного вызова.

Мой код, который работает сейчас:

function updateOrganizationAverageScore() { 

    var organization = $("#organization").val(); 
    var indicator = $("#indicators").val(); 
    var funcid = "fill_chart_average_score"; 

    //console.log('changed'); 
    $.getJSON('functions/getfunctions.php', { 
     "organization":organization, 
     "indicator":indicator, 
     "funcid":funcid}, 

    function(dataChart) { 

      var chart = AmCharts.makeChart("chartaveragescore", chartProperties); 
      chart.dataProvider = dataChart; 
      chart.validateData(); 
      chart.startDuration = 1; 
    }); 
} 
Смежные вопросы