Данные jqPlot не отображаются на линейной диаграмме - PullRequest
0 голосов
/ 21 января 2019

Моя неопытность с jQuery на данный момент вопиющая.Я получаю данные jSON со столбцами «location, YearPostDate, MonthPostDate и AverageSalary».Местоположения могут быть «Местными» или «Национальными».Я хочу одну строку местного и одну строку национального по YearPostdate-MonthPostdate.ПОЧТИ там, но я знаю, что я не собираю и правильно представляю структуры / массивы.

Я пробежался по этому множеству различных способов.У меня он работал с простым кодом Джейн, поэтому я знаю, что он работает, но когда я перехожу к фактическому извлечению данных и созданию структур, у меня что-то искажается.Я проверил входящий JSON - это не проблема.Чрезвычайно не хватает моих навыков работы с jQuery и jqPlot.

Вот основная часть моего кода, которая нуждается в помощи:

$('#btnTrend').click( function() {
$( '#jobsDisplay' ).hide();
$( '#jobsDisplay' ).empty();
$( '#trendsError' ).hide();
if ( ($( '#rolesTitle' ).val() != null ) && ($( '#rolesLocation' ).val() != null ) ) {
    $('#rates').text("Loading...");
    $('#duration').text("Loading...");
    $('#jobs').text("Loading...");
    $('#trendData').show();
    $.ajax({
        url: 'http://somedomain.com/components/jobsDatabase.cfc',
        type: 'post',
        dataType: 'json',
        data: {
            method: 'getMarketRateTrend',
            role: $('#rolesTitle').val(),
            region_state: $('#rolesLocation').val(),
            returnFormat: 'json'
        },
        success: function(data) {
            var localList = [];
            var nationalList = [];
            var xAxis = [];
            var yValue = 0;
            var maxY = 100;
            var minY = 0;
            var lastValue = '';
            var finalLocal = '';
            var finalNational = '';


                $.each(data, function(i,val){ 
                    /*var xValue = data[i]['YearPostDate']+'-'+data[i]['MonthPostdate'];*/
                    var xValue = data[i]['MonthPostdate'];
                    if (lastValue != xValue) {
                        xAxis.push(xValue);
                        lastValue=xValue;
                    }
                    yValue = data[i]['AverageSalary'];
                    var zLocation = data[i]['location'];
                    if (zLocation=='National') {
                        nationalList.push([xValue,yValue]);
                        if (yValue > maxY) {
                            maxY = yValue;
                        }
                    } else {
                        localList.push([xValue,yValue]);
                        if (yValue > maxY) {
                            maxY = yValue;
                        }
                    }
                });
                yValue = yValue * 1.10;
                $( '#rates' ).empty();
                $.jqplot('rates',  
                    [[localList],
                    [nationalList]],
                    { title:'Market Rates',
                        series:[{color:'#5FAB78'}]
                    });
            },
            error: function(xhr, textStatus,errorThrown){
                alert(errorThrown);
            }
        });

    } else {
        $( '#trendsError' ).show();
    };
});

Входящие данные:

Local   2018    3   33.41
National    2018    3   33.23
Local   2018    4   34.09
National    2018    4   32.62
Local   2018    5   32.55
National    2018    5   32.82
Local   2018    6   34.98
National    2018    6   34.08

Мой результат прямо сейчас - пустой график с заголовком Market Rates.Я ищу двухстрочный график с одной строкой для локальных данных и одной для национальных данных по месяцам / годам, но диаграмма пуста.

1 Ответ

0 голосов
/ 21 января 2019

Оказывается, я все делал правильно, кроме:

  • Дело возвращалось как все ниже, поэтому вместо данных [i] ['MonthPostDate'] это должны были быть данные [i]['monthpostdate']
  • Нужно или нет, если заключить данные [i] [что угодно] в соответствующие функции Number () или String (), казалось бы, все стало лучше.
  • Для болеелюбовь, я изменил значение yValue на Number (data [i] ['AverageSary']. toFixed (2)), поскольку это была сумма в долларах.

Надеюсь, что эти маленькие, казалось бы незначительные вещи помогут следующему человеку.

...