在HighCharts中使用ajax变量

时间:2014-03-26 11:28:02

标签: javascript jquery ajax highcharts

我通过使用ajax从mysql获得了一些价值。

但我不能在HighCharts中使用它。

很快就会这样:

 var Name;
(function riza() {
        $.ajax({
            url: './riza.php',
            type: 'POST',
            dataType: 'json',
            success: function(result) {
                Name = Number(result['Name']);
                setTimeout(riza, refresh);
                //...some code here
                alert(Name); //FIRST ALERT
            }
        });
    }());

(function test(){
    alert(Name);  //SECOND ALERT
    setTimeout(test,1000);
}());

    $(function() {
        $(document).ready(function() {
            Highcharts.setOptions({
                global: {
                    useUTC: false
                }
            });
            new Highcharts.Chart({
                    chart: {
                        style: {...},
                        events: {...}
                    },
                    title: {...},
                    xAxis: {...},
                    yAxis: {
                        title: {
                            text: 'A'+ Name //I WANT USE IT HERE
                        },
                    series: [{...},{...}]
                });
            }
        });
    });

FIRST ALERT显示“医院”。 这是真的,我想要它。

SECOND ALERT显示“未定义”,而不是间隔显示“医院”。

所以我不能在highcharts中使用它。我认为HighCharts必须等待ajax。

我该怎么做?

2 个答案:

答案 0 :(得分:0)

尝试这样的事情

function riza() {
var Name;
    $.ajax({
        url: './riza.php',
        type: 'POST',

        async:false,

        dataType: 'json',
        success: function(result) {
            Name = Number(result['Name']);
            setTimeout(riza, refresh);
            //...some code here
            alert(Name); //FIRST ALERT
        }
    });

  return Name;
}//end function

(function test(){
Name = riza();
alert(Name);  //SECOND ALERT
setTimeout(test,1000);
}());

答案 1 :(得分:0)

你可以试试这个

$(function(){
   var name = "your initial value"
   getHighcharts(name);
});

在ajax成功通话函数中

$.ajax({
        url: './riza.php',
        type: 'POST',
        dataType: 'json',
        success: function(result) {
            Name = Number(result['Name']);
            setTimeout(riza, refresh);
            //...some code here
            alert(Name); //FIRST ALERT

            getHighcharts(Name);

        }
    });



function getHighcharts(name){
    // your Highcharts code with passed name
}