Цикл в гартчарте Highcharts - PullRequest
       0

Цикл в гартчарте Highcharts

0 голосов
/ 16 января 2020

У меня есть массив данных из базы данных в контроллере. Я получаю данные с помощью json_encode (). Я хочу использовать эти данные в ganttchart, и я не могу l oop данные. Я делаю это с помощью codeigniter и код выглядит следующим образом:

Контроллер:

function loaddashboard()
{
    $data['phase']=$this->try_ganttchart_model->get_phase();
    $data['all']=$this->try_ganttchart_model->get_data();
    $this->load->view('try_ganttchart',$data);
}

Просмотр:

var data = <?php echo json_encode($all); ?>;
var phase = <?php echo json_encode($phase); ?>;
Highcharts.ganttChart('container', {
series: [{
    name: 'LDR',
    data: [{
        name: 'LDR',
        id: 'new_offices',
        owner: 'Peter'
    }, {
        name: 'Prepare office building',
        id: 'prepare_building',
        parent: 'new_offices',
        start: convert_date(dates[0].review_sd),
        end: convert_date(dates[0].review_ed),
        completed: {
            amount: 0.2
        },
        owner: 'Linda'
    }]
 }
],
tooltip: {
    pointFormatter: function () {
        var point = this,
            format = '%e. %b',
            options = point.options,
            completed = options.completed,
            amount = isObject(completed) ? completed.amount : completed,
            status = ((amount || 0) * 100) + '%',
            lines;

        lines = [{
            value: point.name,
            style: 'font-weight: bold;'
        }, {
            title: 'Start',
            value: dateFormat(format, point.start)
        }, {
            visible: !options.milestone,
            title: 'End',
            value: dateFormat(format, point.end)
        }, {
            title: 'Completed',
            value: status
        }, {
            title: 'Owner',
            value: options.owner || 'unassigned'
        }];

        return reduce(lines, function (str, line) {
            var s = '',
                style = (
                    defined(line.style) ? line.style : 'font-size: 0.8em;'
                );
            if (line.visible !== false) {
                s = (
                    '<span style="' + style + '">' +
                    (defined(line.title) ? line.title + ': ' : '') +
                    (defined(line.value) ? line.value : '') +
                    '</span><br/>'
                );
            }
            return str + s;
        }, '');
    }
},
title: {
    text: 'Gantt Project Management'
},
xAxis: {
    currentDateIndicator: true,
    min: convert_date(dates[0].review_sd),
    max: convert_date(dates[0].review_ed)
}
});

function convert_date(d){
     return (Date.UTC(d.split("-")[0],d.split("-")[1],d.split("-")[2]));
}

Я хочу использовать что-то подобное в javascript:

for(i=0; i< phase.length; i++){
series: [{
    name: phase[i].phase_name,
    data: [{
        name: phase[i].phase_name,
        id: 'phase'+ i,
    }, 
    {
        for(j=0; j<data.length; j++){
        if(phase[i].phase_name == data[j].phase){
        name: data[j].task_name,
        start: convert_date(data[i].review_sd),
        end: convert_date(data[i].review_ed),
      }
    }
    }]
 }
]}

Как мне l oop понравится? Мне нужно использовать два цикла, поскольку мне нужно сравнить данные внутри данных. Я получаю ошибку как undefined symbol, так как я использовал l oop.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...