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);
}
?>