Scarica il tool con un esempio
Ajax e’ l’acronimo di Asynchronous JavaScript and XML
La tecnica Ajax utilizza una combinazione di:
* HTML (o XHTML) e CSS per il markup e lo stile;
* DOM (Document Object Model) manipolato attraverso un linguaggio ECMAScript come JavaScript o JScript per mostrare le informazioni ed interagirvi;
* l’oggetto XMLHttpRequest per lo scambio asincrono dei dati tra il browser e il web server.
In certe situazioni, può essere usata la tecnica dell’Iframe nascosto invece di XMLHttpRequest per scambiare i dati , in altre implementazioni, tag <script></script> aggiunti dinamicamente;
* in genere viene usato XML come formato di scambio dei dati.
Questi file sono solitamente generati dinamicamente da script lato server.
Il Tool completamente in PHP è derivato dal famoso sajax con la differenza che è scritto completamente con la programmazione ad oggetti.
La classe AJAX() permette di chiamare una funzione php direttamente dal client dell’utente utilizzando un oggetto XMLHttpRequest .
Tutto il codice javascript che gestisce la chiamata XMLHttpRequest viene esportato in un file js o incluso nella pagina html attraverso un tag script.
Ecco un esempio di Codice:
<?php
function miafunzione(mioparam) {
return true;
}
// includo il file di classe
if(INCLUDE_AJAX != “1″)
@include (“ajax.class.php”);//istanzio l’oggetto ajax
$a = new AJAX();
// tipo di richiesta che verra’ utilizzata per la chiamata XMLHttpRequest
$a->sajax_request_type = “POST”;
//->sajax_debug_mode=1;
// esporta la funzione che deve essere chiamata
$a->sajax_add_export_function(“miafunzione”);
// elabora la richiesta e restituisce il risultato
$a->sajax_handle_client_request();
?>// codice javascript lato client
<html>
<head>
<meta http-equiv=”content-type” content=”text/html; charset=iso-8859-1″ />
<meta name=”author” content=”luciano grippa” />
// settare il terzo parametro su true solo in fase di sviluppo o quando si sta facendo il debug dello script , altrimenti non inserire nulla
$a->putAndincludeJs(“aiax.js”,”/var/www/”,”http://www.castweb.it/”,true); ?>
<script type=”text/javascript”>
function eseguioperazione(){
// chiama alla funzione remota
var param=0;
miafunzione(param,function (ret){
if(ret){
alert(“la funzione ha restituito true”);
}else{
alert(“la funzione ha restituito false”);
}
});
}
?>
<input value=”chiama ajax” onclick=”eseguioperazione();” name=”btnAjax” id=”btnAjax” title=”chiama una funzione ajax” type=”button” />
In questo caso la funzione php residente sul server è miafunzione() che deve essere chiamata da javascript direttamente dal client dove avrà lo stesso nome della funzione presente sul server.
La funzione php deve sempre restituire qualcosa , sul client quello che verrà ritornato da php sarà gestito dalla funzione indicata dall’ultimo parametro della funzione js chiamante.
<script type=”text/javascript”>
function eseguioperazione(){
// chiama alla funzione remota
var param=0;
miafunzione(param,function (ret){
// ret contiene il ritorno della funzione php in questo caso è true
if(ret){
alert(“la funzione ha restituito true”);
}else{
alert(“la funzione ha restituito false”);
}
});
}
</script>
Dopo aver creato l’oggetto AJAX() e specificato il formato del tipo di richiesta che in questo caso e’ POST , verra’ esportata la funzione
$a->sajax_add_export_function(“miafunzione”);
Per includere il file js creato dinamicamente dalla classe viene utilizzato il seguente codice da inserire tra i tags .// settare il terzo parametro su true solo in fase di sviluppo o quando si sta facendo il debug dello script , altrimenti non //inserire nulla il secondo paramentro indica la posizione su disco del file mentre il terzo viene utilizzato per il percorso del //file da includere
$call->putAndincludeJs(“aiax.js”,”/var/www/”,”http://www.castweb.it/”,true);
?>
questo produrra’ il seguente output:
<script src=”http://www.castweb.it/aiax.js” type=”text/javascript”></script>
Dove in ajax.js e’ esportato tutto il codice js che serve a gestire le chiamate XMLHttpRequest.
Per maggiori chiarimenti potete contattarmi.
[CONTACT-FORM]
