2017-06-20 3 views
0

Ich habe ein folgendes Problem: Ich habe einen Scheduler, der von verschiedenen Benutzern verwendet wird. Wenn ein Benutzer dem Scheduler ein Ereignis hinzufügt, muss eine Sitzungsvariable, die seine ID enthält, an einen Prozessor übergeben werden, wo sie in eine Datenbank eingefügt wird.Verwendung von BeforeInsert in DHTMLX und Übergabe der Variablen an ein Formular

Meine erste Frage ist, wie kann ich ein Session-Variable auf eine Form binden, die mit einem scheduler.config.lightbox.sections erstellt:

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"} 
    ] 

Ist es möglich, zu binden, ein Session-Variable, um es?

Meine zweite Frage ist, wie bekomme ich Sitzungsvariable in der Prozessor.php? bitte korrigieren Sie mich, wenn ich falsch liege, aber nach der Dokumentation, es wird so etwas sein:

//... 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"); 

Antwort

0

Sie onEventCreated verwenden können Standardwerte (wie Benutzer-ID) in ein neu erstelltes Ereignis zuweisen :

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

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

Diese API-Ereignis ausgelöst, bevor Leuchtkasten geöffnet wird, so wird der Leuchtkasten zugewiesenen Werte erhalten.

Wie für Backend - ja, sollte so etwas funktionieren. Ein paar Anmerkungen

  1. $ action-> set_value - der erste Parameter ist ein Spaltennamen
  2. diese Spalte muss in Eigenschaften Spalten aufgelistet werden Sie mit dem Anschluss (dh, wenn Sie Wert der Spalte Sie nicht haben in Ihrem render_table Parameter - Stecker es ignorieren)

So etwas sollte folgendes tun:

//... 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"); 

Sie Anschluss Protokollierung aktivieren können die tatsächlichen sQL zu sehen Anfragen Connector generiert: https://docs.dhtmlx.com/connector__php__errors.html#serversidelogging

Verwandte Themen