Dal codice PHP è possibile gestire gli eventi in modo semplice ed immediato, oltre agli eventi base è possibile creare e gestire eventi custom.
INTERCETTARE UN EVENTO
<?php
$obj->addEventListener($id, $event, $function, $run = false, $param = null);
?>
$id
E' l'id dell'oggetto nel quale si vuole aggiungere un evento in ascolto incluso: document e window
$event
Nome dell'evento da intercettare. Accetta eventi base ed eventi custom
$function
Funzione scaturita dall'evento.
$run
Opzionale, se true scaturisce l'evento al caricamento della pagina
$param
Opzionale, consente di specificare i parametri da passare alla funzione associata allevento.
AGGIUNGERE UN EVENTO
<?php
$obj->addEventBefore($id, $function, $call)
$obj->addEvent($id, $function, $call)
$obj->addEventAfter($id, $function, $call)
?>
$id
E' l'id dell'oggetto nel quale si vuole aggiungere un evento in ascolto.
$function
Nome della funzione dichiarata in addEventListener
$call
Istruzione o funzione da eseguire alla generazione dell'evento.
Le tre funzioni addEvent consentono di raggruppare le funzioni da eseguirle in tre momenti diversi dell'evento.

Per capire il funzionamento e la gestione degli eventi faremo qualche esempio di come vengono utilizzati nel framework.
INSERIRE EVENTI NELLA PAGINA
<?php
function html_load()
{
global $xml;
$code = '
function ()
{
alert('OK');
}
';
$xml->pageObj->addEventListener("text1_11", "change", $code);
}
?>
<?php
function html_load()
{
global $event;
$code = '
function count()
{
var ds1 = $("ds1");
var vat = ds1.DSresult[ds1.DSpos]["vat"];
var saleprice = parseFloat(ds1.DSresult[ds1.DSpos]["saleprice"]);
var salepricevat = saleprice + (saleprice * vat / 100)
var revenue = parseFloat(ds1.DSresult[ds1.DSpos]["saleprice"]) * 100 / parseFloat(ds1.DSresult[ds1.DSpos]["lastpurchaseprice"]);
var averagerevenue = parseFloat(ds1.DSresult[ds1.DSpos]["saleprice"]) * 100 / parseFloat(ds1.DSresult[ds1.DSpos]["averagepurchaseprice"]);
ds1.DSresult[ds1.DSpos]["salepricevat"] = salepricevat.toString();
ds1.DSresult[ds1.DSpos]["revenue"] = revenue.toString();
ds1.DSresult[ds1.DSpos]["averagerevenue"] = averagerevenue.toString();
TEXT.refreshObj("text1_12");
TEXT.refreshObj("text1_13");
TEXT.refreshObj("text1_14");
}
SYSTEMEVENT.addEventListener($("text1_11"), "change", count);
SYSTEMEVENT.addEventListener($("dsselect2"), "change", count);
';
$event->setCodeJs($code);
}
?>