E' possibile gestire gli eventi DOM sia da codice php che da codice javascript indipendentemente dal browser utilizzato.
GESTIONE DA PHP
Tutti gli oggetti hanno il metodo addEventListener. Per inserire un evento in ascolto la sintassi è:
<?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. Viene usato per gli eventi custom
ESEMPIO
Esempio di come vengono intercettati gli eventi keydown, keyup e click dall'oggetto gridds.
<?php
$gridds->addEventListener("gridds1_body", "keydown", "function(event) { gridds.keyDown('$id', event); } ");
$gridds->addEventListener("gridds1_body", "keyup", "function(event) { gridds.keyUp('$id', event); } ");
$gridds->addEventListener("gridds1_body", "click", "function() { gridds.setFocus('$id'); } ");
?>
GESTIONE DA JAVASCRIPT
Per inserire un evento in ascolto la sintassi è:
obj
Oggetto nel quale si vuole aggiungere un evento in ascolto.
eventname
Nome dell'evento base da intercettare.
fnz
Funzione scaturita dall'evento.
ESEMPIO
Esempio di come intercettare il click dell'oggetto text1.
function miafunzione()
{
alert('hai fatto click!');
}
INSERIRE EVENTI NELLA PAGINA
<?php
function html_load()
{
global $xml;
$code = '
function change()
{
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);
}
?>