Как создать дерево из sql данных для dabeng orgchart? - PullRequest
0 голосов
/ 24 апреля 2020

Я хочу создать диаграмму дерева вызовов в javascript и php. В Google я нашел dabeng orgchart

(function($) {
    $(function() {

        var result=null;
        var ds = {
         'name'     : 'Lao Lao',
         'title'    : 'general manager',
         'children' : [
           { 'name' : 'Bo Miao', 'title': 'department manager' },
           { 'name' : 'Su Miao', 'title': 'department manager',
             'children': [
               { 'name': 'Tie Hua', 'title': 'senior engineer' },
               { 'name': 'Hei Hei', 'title': 'senior engineer',
                 'children': [
                   { 'name': 'Pang Pang', 'title': 'engineer' },
                   { 'name': 'Xiang Xiang', 'title': 'UE engineer' }
                 ]
                }
              ]
            },
            { 'name': 'Hong Miao', 'title': 'department manager' },
            { 'name': 'Chun Miao', 'title': 'department manager' }
          ]
        };

        var oc = $('#chart-container').orgchart({
          'data'        : ds,
          'depth'       : 2,
          'nodeContent' : 'title'
        });

        $('#chart-container').find('.node').on('click', function () {
          alert(JSON.stringify($(this).data('nodeData')));
        });

    });
})(jQuery);

Этот пример работает отлично. но у меня есть динамические c данные, которые я получаю из sql запроса

var result = null;
var re     = $.ajax({
                      url   : 'getAttendanceData.php',
                      type  : 'POST',
                      data  : {
                                  team      : 'BFL',
                                  callData  : '00'
                              },
                      async :false,
                      success: function(data) {
                          result =data;
                          var days=result.replace("Success:","");
                          //echo "<meta http-equiv='refresh' content='0'>";
                          result=dataFinal(result);
                          result.replace("[","").replace("]","");
                          }
                      }).done(function(data){
                        // openPage(data);
                      }).fail(function(data){
                        alert(data.responseText);
                      });

фоновый запрос выполняется как

if(isset($_POST['callData'])) 
{
    $serverName         = "DESKTOP-VJOHEG5";
    $connectionOptions  = array(
                                "Database"  => "HGS_PROJECTS_PORTAL",
                                "Uid"       => "sa",
                                "PWD"       => "123456"
                                );
    //Establishes the connection
    $conn        = sqlsrv_connect($serverName, $connectionOptions);
    $sqlForTrack = "SELECT id,Team,Name,Designation,Mobile_No,Parent_id FROM Call_Tree_Team where Team=?";
    $params      = array('BFL');
    $stmt        = sqlsrv_query($conn, $sqlForTrack, $params, array("Scrollable"=>"static"));
    $outp       = "[";
    while( $rs = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC) ) {
        if ($outp != "[") {$outp .= ',';}
        $outp .= '{\'Name\':\''  . $rs[2] . '\',';
        $outp .= '\'Title\':\''   . $rs[3]        . '\',';
        $outp .= '\'Children\':\''. $rs[5]     . '\'}';
    }
    $outp .="]";
        echo ($outp);
        sqlsrv_free_stmt($stmt);
        sqlsrv_close ( $conn ); 

}

Так что он дает мне данные как

[
    {'Name':'1','Title':'aaa','Children':'-1'},
    {'Name':'2','Title':'bbb','Children':'1'},
    {'Name':'3','Title':'ccc','Children':'1'}
]

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

MY Sql Таблица сервера

id     Name     Parent    
1      aaa      -1    
2      bbb       1    
3      ccc       1    

, пожалуйста, помогите мне преобразовать мой sql вывод запроса. В Google есть несколько примеров для этого, но формат отличается, и я не знаком с json преобразованиями. пожалуйста, помогите мне.

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