我遇到以下问题:我有一个由不同用户使用的调度程序。当用户向调度程序添加事件时,必须将包含其id的会话变量传递给将其插入数据库的处理器。
我的第一个问题是如何将会话变量绑定到使用scheduler.config.lightbox.sections
创建的表单:
scheduler.config.lightbox.sections=[
{name:"Customer Code", height:21, map_to:"text", type:"textarea" , focus:false},
{name:"Photographer", height:21, map_to:"pid", type:"select",
options:scheduler.serverList("type")},
{name:"time", height:72, type:"time", map_to:"auto"}
]
是否可以将会话变量绑定到它?
我的第二个问题是如何在processor.php中获取会话变量? 如果我错了,请纠正我,但根据文件,它将是这样的:
//... connect here
function myInsert($action){
$new_value = rand(0,100);
$action->set_value("name",$new_value);
}
$conn->event->attach("beforeInsert","myInsert");
// ...some code here
$conn->render_table("photographers_at_work", "id", "time, end_time, customer_code, pid");
答案 0 :(得分:0)
您可以使用onEventCreated将默认值(例如用户ID)分配给新创建的事件:
scheduler.attachEvent("onEventCreated", function(id,e){
var event = scheduler.getEvent(id);
event.pid = userId;
});
https://docs.dhtmlx.com/scheduler/api__scheduler_oneventcreated_event.html
此灯具事件在灯箱打开前触发,因此灯箱将收到指定的值。
至于后端 - 是的,这样的事情应该有效。几个笔记
以下内容应该如下:
//... connect here
function myInsert($action){
global $userId;
$action->set_value("pid",$userId);// ! set value of "pid" column
}
$conn->event->attach("beforeInsert","myInsert");
// ...some code here
$conn->render_table("photographers_at_work", "id", "time, end_time, customer_code, pid");
您可以启用连接器日志记录,以查看连接器生成的实际sql请求:https://docs.dhtmlx.com/connector__php__errors.html#serversidelogging