Tool Ajax per Php

icona di download Scarica il tool con un esempio

visualizza il demo dello script Visualizza 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]

Lascia un commento