Как запросить данные из базы данных, используя высокие графики в Codeigniter? - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть данные о сотруднике, работающем полный и неполный рабочий день. И я получаю общее количество обеих сторон, используя select_sum. Проблема заключается в том, как я могу отобразить их данные, используя старшую диаграмму общего числа занятых полный рабочий день и общее количество неполный рабочий день, распределенных по отделам.

Я новичок и не знаю, как сделать это динамичным. Вот почему я постараюсь использовать его в статических данных. Заранее спасибо.

БД:

_____________________________________________________________
| id | account_id  |   fulltime   |  partime  |  department  |
|____|_____________|______________|___________|______________|
| 1  |      3      |      1       |   null    |      3       |
|____|_____________|______________|___________|______________|
| 2  |      5      |     null     |     1     |      1       |
|____|_____________|______________|___________|______________|
| 3  |      6      |       1      |    null   |      2       |
|____|_____________|______________|___________|______________|

LEGEND :

department : 1 = 'COF'
           : 2 = 'CAS'
           : 3 = 'CCS'

Я использую следующее:

JS:

$(function(){

    var full= $.getJSON('<?php echo base_url('public/employee/fulltime');?>', 
        function (data1){
            console.log(data1);
    });

    var data = [
     { y: 'COF', z0: 'Part Time' , a0: 275, z1: 'Full Time' , a1: full},
     { y: 'CAS', z0: 'Part Time' , a0: 440, z1: 'Full Time' , a1: 332},
     { y: 'CCS', z0: 'Part Time' , a0: 450, z1: 'Full Time' , a1: 425},
     { y: 'CFND', z0: 'Part Time' , a0: 462, z1: 'Full Time' , a1: 435},
     { y: 'CHMT', z0: 'Part Time' , a0: 504, z1: 'Full Time' , a1: 162},
     { y: 'CTE', z0: 'Part Time' , a0: 400, z1: 'Full Time' , a1: 162},
     { y: 'CBMA', z0: 'Part Time' , a0: 260, z1: 'Full Time' , a1: 79},
     { y: 'CCJE', z0: 'Part Time' , a0: 129, z1: 'Full Time' , a1: 42},
     { y: 'ADMIN', z0: 'Part Time' , a0: 129, z1: 'Full Time' , a1: 42}

    ]

    Morris.Bar({
      element: 'chart',
      data: data,
        xkey: 'y',
        ykeys: ['a0', 'a1'],
        labels: ['Label1', 'Label2'],
        fillOpacity: 0.6,
        hideHover: 'auto',
        behaveLikeLine: true,
        resize: true,
        stacked: true,
        pointFillColors:['#ffffff'],
        pointStrokeColors: ['black'],
        lineColors:['lime', 'blue', 'red', 'cyan', '#909090'],
        xLabelAngle: 60,
        hoverCallback: function (index, options, content, row) {
        var currentDiv = "";
        var finalContent = $("<div/>");

        $(content).each(function () {
            currentDiv = $(this);
            currentDiv.html(currentDiv.html().replace("Label1", data[index].z0).replace("Label2", data[index].z1))
            $(finalContent).append(currentDiv);
        });

        $(finalContent)
        return finalContent;    
      }
    });

});

КОНТРОЛЛЕР:

public function fulltime()
{

    $fulltime = $this->account_model->get_fulltime();
        echo json_encode($fulltime);
}

МОДЕЛЬ:

public function get_fulltime()
{
    $this->db->select_sum('fulltime');
    $this->db->from('list_of_employee');

    return $this->db->get()->result();
}

screenshot

1 Ответ

0 голосов
/ 29 апреля 2019

Поместите данные, полученные из ответа Ajax, в качестве входных данных в ваш скрипт Highcharts.
1- Сделайте ваш запрос данных как структуру Highcharts.
2. Выполните действие PHP в вашем контроллере, чтобы вызвать предыдущий запрос.
3. Выполните действие PHP в Ajax Call и дайте данные ответа на вход ваших Highchats.

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