Как присвоить .POST возвращаемое значение переменной

0

Как назначить .post вернуть данные переменной.активно я пытаюсь обновить high-chart. данные с высоким чатом в массиве.

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 Я имею в виду счет переменной null каждый раз, когда я новичок в JavaScript. Я не знаю, в чем проблема в моем коде. Пожалуйста, помогите.

Теги:
highcharts

3 ответа

1

Это связано с тем, что AJAX является асинхронным - к моменту назначения этой переменной остальная часть кода уже выполняется, введите обратные вызовы. Вы можете передать функцию для запуска после завершения вашего запроса 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.

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]);
    });
    
0

Метод .post является асинхронным (a ajax). Возвращаемое значение $.post является объектом jqXHR и не имеет ничего из базы данных в следующем коде.

В соответствующей заметке у вас может быть ошибка. я думаю

$.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});
  • 0
    спасибо за воспроизведение, это просто возвращаемое значение. Я имею в виду, что вы можете использовать любую переменную костюма.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню