如何将.POST返回值赋给变量

时间:2014-03-19 19:31:54

标签: javascript jquery highcharts

如何将.post返回数据分配给variable.actually我正在尝试更新高图表。 数组中的高聊天数据。

的JavaScript

$.post( "system/return_pages/counter.txt", function(data) {//return value data});

以上.post mathod给我返回值这是我的访客价值数量。我应该在高聊天中需要这个值。但真实场景我试图制作全局变量并分配它。但是当我放入高图表数组比没有显示任何值。我正在显示高图表代码和我所做的。

JavaScript

$(function () {
    var chart;
    var date = new Date();
    var d  = date.getDate();
    var day = (d < 10) ? '0' + d : d;
    var m = date.getMonth() + 1;
    var month = (m < 10) ? '0' + m : m;
    var yy = date.getYear();
    var year = (yy < 1000) ? yy + 1900 : yy;
    var count = "";
    $.post( "system/return_pages/counter.txt", function( value ) { count =data; //count value 35});

    var date = day + "/" + month + "/" + year;
    $(document).ready(function() {
    Highcharts.setOptions({
    colors: ['#32353A']
    });
    chart = new Highcharts.Chart({
        chart: {
            renderTo: 'container',
            type: 'column',
            margin: [ 50, 30, 80, 60]
        },
        title: {
            text: 'Visits this month'
        },
        xAxis: {

            categories: [
            date
            ],
            labels: {
                rotation: -45,
                align: 'right',
                style: {
                    fontSize: '9px',
                    fontFamily: 'Tahoma, Verdana, sans-serif'
                }
            }
        },
        yAxis: {
            min: 0,
            title: {
                text: 'Visits'
            }
        },
        legend: {
            enabled: false
        },
        tooltip: {
            formatter: function() {
                return '<b>'+ this.x +'</b><br/>'+
                    'Visits: '+ Highcharts.numberFormat(this.y, 0);
            }
        },
            series: [{
            name: 'Visits',
            data: [count],
            dataLabels: {
                enabled: false,
                rotation: 0,
                color: '#F07E01',
                align: 'right',
                x: -3,
                y: 20,
                formatter: function() {
                    return this.y;
                },
                style: {
                    fontSize: '11px',
                    fontFamily: 'Verdana, sans-serif'
                }
            }, 
            pointWidth: 20
        }]
    });
});


});

高图表null的结果我的意思是每当我是JavaScript新手时计数变量null。我不知道我的代码中有什么问题。请帮忙。

3 个答案:

答案 0 :(得分:1)

这是因为AJAX是异步 - 当变量get被分配时,其余的代码已经运行,输入回调。一旦你的AJAX请求完成,你可以传递一个函数来运行,这个函数应该包含要完成的所有逻辑。

$.post( "system/return_pages/counter.txt", function( value ) {
    //value is only accessible in here
    //Either do your logic in here, or pass "value" to another function
});

简而言之,将所有高图表逻辑放入AJAX请求的回调中。

答案 1 :(得分:0)

.post方法是异步的(a中的ajax)。 $ .post的返回值是jqXHR object,后续代码中的数据库没有任何内容。

在相关说明中,您可能有错误。我想

$.post( "system/return_pages/counter.txt", function( value ) { count =data; //count value 35});

应该是

$.post( "system/return_pages/counter.txt", function( data) { count =data; //count value 35});

答案 2 :(得分:0)

你有trhee选项,(一个坏的和两个好的):

  • (坏)将AJAX设置为同步
  • (好)创建图表内部回调:

    $.post( "system/return_pages/counter.txt", function( value ) { 
        count = data; //count value 35 
        chart = new Highcharts.Chart(options);
    });
    
  • (好)创建空图表(第一个!),并在回调更新该图表:

    chart = new Highcharts.Chart(options);
    $.post( "system/return_pages/counter.txt", function( value ) { 
        count = data; //count value 35 
        chart.series[0].setData([count]);
    });