尝试让dhtmlx gantt在页面加载时加载json数据。
$colors = array(1=>"red", 2=>"green", 3=>"blue", 4=>"yellow", 5=>"orange", 6=>"grey");
$aryData = array();
if($project_tasks) {
foreach($project_tasks as $aryTask) {
$aryData[] = array(
"id" => $aryTask["pt_id"],
"text" => $aryTask["pt_name"],
"start_date" => date("d-m-Y", strtotime($aryTask["pt_start_date"])),
"duration" => round((strtotime($aryTask["pt_end_date"]) - strtotime($aryTask["pt_start_date"]))/(60*60)),
"open" => true,
"color" => $colors[rand(1,6)]
);
}
}
$strData = json_encode($aryData, JSON_UNESCAPED_SLASHES);
header("Content-type:application/json;");
echo "\"data\" : ".$strData;
提供类似这样的东西(来自chrome控制台):
"data" : [{"id":"152","text":"test3","start_date":"01-09-2015","duration":600,"open":true,"color":"yellow"},{"id":"153","text":"test1","start_date":"23-09-2015","duration":72,"open":true,"color":"grey"},{"id":"154","text":"test2","start_date":"15-09-2015","duration":264,"open":true,"color":"red"}]
var data_url = basePath + "system/data_file.php?project_id=" + projectID;
$(".gantt").dhx_gantt({
scale_unit:"week",
step:1,
date_scale:"%W"
});
// var tasks = $(".gantt").dhx_gantt().load(data_url);
$(".gantt").dhx_gantt().load(data_url);
gantt.parse(tasks);
我尝试警告(任务);"由于"未定义"或null。
我尝试过同步的ajax数据加载:
var tasks = null;
$.ajax({
url: data_url,
async: false,
dataType: 'json',
success: function(data) {
tasks = data;
}
});
并给出相同的结果 - >空。
所以我明白为什么甘特不会加载数据 - 任务变量中没有数据。
有没有人有一个正在运行的例子?
亲切的问候
拉斯
答案 0 :(得分:0)
Soo ......我玩了代码..
这就是我到目前为止所提出的。似乎JSON必须以特定的方式进行..
JS:
<div class="row">
<div class="col-md-4 col-md-offset-5">
<div class="form-group">
<label for="processo" class="label-control"></label>
<input type="text" class="form-control"/>
</div>
</div>
</div>
这种方法的唯一问题 - 到目前为止 - 是dhtmlx_gantt最初不会渲染任务。似乎需要一种刷新。 (我尝试了API中提供的内容(http://docs.dhtmlx.com/gantt/api__gantt_render.html)
仍在尝试修复那个......
哦,以及创建json数据的PHP文件:
/ 开始 /
/* Gantt Start */
var data_url = basePath + "system/print_gantt_project_data.php?project_id=" + projectID;
gantt.config.readonly = true;
gantt.config.scale_unit = "month";
gantt.config.step = 1;
gantt.config.date_scale = "%M";
gantt.init("gantt_div");
gantt.load(data_url, "json");
gantt.render();
/* Gantt End */
任何有关制作工作正确的知识,请不要犹豫,进入; - )
/拉斯