DHTMLXGantt Недопустимые данные

Мне нужно загрузить данные MySQL в DHTMLXGantt, и я следовал всем инструкциям здесь, на веб-сайте (ссылка: http://docs.dhtmlx.com/gantt/desktop__how_to_start.html), однако он показал мне ошибку «Недопустимые данные». Где я неправ?

Вот мой код:

    //myGantt.html
    <!DOCTYPE html>
    <html>
    <head>
       <title>How to Start with dhtmlxGantt</title>
       <script src="codebase/dhtmlxgantt.js"></script>
       <link href="codebase/dhtmlxgantt.css" rel="stylesheet">
       <style type="text/css" media="screen">
        html, body{
            margin:0px;
            padding:0px;
            height:100%;
            overflow:hidden;
        }   
    </style>
    </head>
    <body>
        <div id="gantt_here" style='width:1000px; height:400px;'></div>
        <script type="text/javascript">
        var tasks = {
        data:[
            {id:1, text:"Project #1",start_date:"01-04-2013", duration:11,
            progress: 0.6, open: true},
            {id:2, text:"Task #1",   start_date:"03-04-2013", duration:5, 
            progress: 1,   open: true, parent:1},
            {id:3, text:"Task #2",   start_date:"02-04-2013", duration:7, 
            progress: 0.5, open: true, parent:1},
            {id:4, text:"Task #2.1", start_date:"03-04-2013", duration:2, 
            progress: 1,   open: true, parent:3},
            {id:5, text:"Task #2.2", start_date:"04-04-2013", duration:3, 
            progress: 0.8, open: true, parent:3},
            {id:6, text:"Task #2.3", start_date:"05-04-2013", duration:4, 
            progress: 0.2, open: true, parent:3}
        ],
        links:[
            {id:1, source:1, target:2, type:"1"},
            {id:2, source:1, target:3, type:"1"},
            {id:3, source:3, target:4, type:"1"},
            {id:4, source:4, target:5, type:"0"},
            {id:5, source:5, target:6, type:"0"}
        ]
    };
            gantt.config.xml_date = "%Y-%m-%d %H:%i";
            gantt.init("gantt_here");
            gantt.load('data.php');//loads data to Gantt from the database
        </script>
    </body>
    </html>`

Вот мои данные.php

    <?php

    include ('codebase/connector/gantt_connector.php');

    $res=mysql_connect("localhost","root","");
    mysql_select_db("dhtmlx");

    $gantt = new JSONGanttConnector($res);
    $gantt->render_links("gantt_links","id","source,target,type");
    $gantt->render_table(
    "gantt_tasks",
    "id",
    "start_date,duration,text,progress,sortorder,parent"
    );
    ?>

Вот моя таблица: столбцы gantt_links: идентификатор, источник, цель, тип Столбцы gantt_tasks: идентификатор, текст, start_date, продолжительность, текст, прогресс, порядок сортировки, родитель


person user4568072    schedule 15.02.2015    source источник


Ответы (2)


Такая ошибка возникает, когда gantt.load получает пустой ответ — https://github.com/DHTMLX/gantt/blob/v3.1.1/codebase/sources/dhtmlxgantt.js#L4661

Код коннектора кажется правильным, но попробуйте открыть data.php в браузере, чтобы проверить, что он возвращает. Если он по-прежнему ничего не показывает - убедитесь, что отчеты об ошибках php включены. http://php.net/manual/en/function.error-reporting.php Вероятно, возникнет какая-то проблема, например, неправильный путь включения или ошибка подключения к базе данных.

person Paul    schedule 16.02.2015

Пример работает, поэтому вам нужно только проверить свою сторону вещей.

Файл php должен быть именно тем, который вы видите. Если вы используете Dreamweaver, убедитесь, что в файле нет другого мусора. Он должен содержать только пример. начнем с Мусор запутает синтаксический анализатор.

Сначала вы должны ввести данные в базу данных. Минимум данных для ввода. Список находится на странице, где у вас есть пример. Я не буду вырезать и вставлять сюда, идите туда и читайте.

Откройте файл data.php в браузере, и вы увидите, есть ли данные из вашего запроса.

Если у вас нет извлеченных данных, проверьте конфигурацию соединений и свои привилегии для чтения базы данных.

Я проверил пример, и он работает.

person user3357198    schedule 25.02.2016