2017-06-20 15 views
0

私には次の問題があります。異なるユーザーが使用するスケジューラがあります。ユーザがスケジューラにイベントを追加するとき、彼のIDを含むセッション変数は、それがデータベースに挿入されるプロセッサに渡されなければならない。BeforeInsertをDHTMLXで使用し、変数をフォームに渡す

私の最初の質問は、私が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"} 
    ] 

は、それにセッション変数をバインドすることが可能ですか?

私の2番目の質問は、どのように私はprocessor.phpのセッション変数を取得するのですか? 、私は間違っているんだけど、マニュアルに従って、このようなものになるだろうなら、私を修正してください:あなたは(ユーザーIDなど)のデフォルト値を割り当てるためにonEventCreatedを使用することができます

//... 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

新しく作成されたイベントに:ライトボックスの前に

scheduler.attachEvent("onEventCreated", function(id,e){ 
    var event = scheduler.getEvent(id); 
    event.pid = userId; 
}); 

https://docs.dhtmlx.com/scheduler/api__scheduler_oneventcreated_event.html

このAPIイベントの発生が開かれるので、ライトボックスは、割り当てられた値を受け取ることになります。

バックエンドについて - はい、このようなものが動作するはずです。ノート

  1. $アクション(Action)> SET_VALUEのカップル - 最初のパラメータは列名
  2. あり、この列には、あなたがコネクタに提供するプロパティの列にリストされている必要があります(列の値を設定するすなわちている場合、あなたはありませんあなたのrender_tableパラメータの - コネクターはそれを無視します)

したがって、次が行うべきもの:

//... 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

関連する問題