Accueil > Devel > PEAR HTML_AJAX

PEAR HTML_AJAX

Vous utilisez et vous désirez vous mettre simplement à l’AJAX ? 
Voilà comment j’utilise ce paquet:

  • Implémentation de package
  • Fonctionnement de package
  • Utilisation / Exemple

Récupération de l’archive & installation.

Téléchargement, sur le site de PEAR directement :  http://pear.php.net/package/HTML_AJAX/download
ou
Installation par PearInstaller : > install HTML_AJAX


Utilisation

Création des fichiers:

Voila comment j’ai organisé ma structure:

/auto_server.
/ajax.
//ajax.js
/class/ajax.class.

Fonctionnement du package /AJAX:

C’est un fonctionnement un peu bizare au premier abord:
Dans ma page, l’appel à une fonction (client) appelera la fonction éponyme (serveur).
Le retour de cette exécution(serveur) sera renvoyée à ladite fonction (client) pour traitement.

Contenu des fichiers

ajax.:

<html>
<head>
<script type=’text/’ src=’auto_server.?client=all&stub=all’></script>
<script type=’text/’>
<!–
var Remote = new ajax(Callback);
–>
</script>
</head>
<body>
<input type="button" onclick="Remote.affiche_n_fois(10);">
<br />
<div id="retour1"></div>
<br />
<input type="button" onclick="Remote.date_heure();">
<br />
<div id="retour2"></div>
</body>
</html>

//ajax.js

var Callback = {
    affiche_n_fois: function (result) {
        var result;
        document.getElementById(’retour1).innerHTML  = result;
    },
    date_heure: function (result) {
        var result;
        document.getElementById(’retour2).innerHTML  = result;
    }
}


/class/ajax.class.

<?
class ajax {
    function ajax { // constructeur
       // …
    }

    function affiche_n_fois($nombre) { // Affiche $nombre de ligne.
       $affiche = ”;
       for($i=0; $i<$nombre; $i++) {
          $affiche .= "J’en suis &agrave; $i <br /> ";
       }
       return $affiche;
    }

    function date_heure() { // renvoi la date/heure courante.
       return date("H:i:s d/m/Y");
    }
}
?>

auto_server.

<?
require_once ‘HTML/AJAX/Server.’;
class AutoServer extends HTML_AJAX_Server {
    var $initMethods = true;
   
    function initajax() { //
        require_once ‘class/ajaxclass.’;
        $myAjax = new ajax();
        $this->registerClass($myAjax);
    }
}
?>

Explications:

La page "auto_server." n’a pour seul but que d’instancier la classe et le package se charge de créer et d’implémenter le XML HTTP REQUEST, ainsi que le de/codage des flux. (via encodage JSON).

Lorsque l’utilisateur appuie sur le premier bouton, un appel à la fonction est fait. Le retour de celle-ci est envoyé à la fonction du même nom. Il est alors aisé d’afficher le contenu.
Les paramètres de cette fonction sont ceux de la fonction .
Exactement pareil pour la secconde fonction.

J’ai volontairement séparer les classes, javascripts et fichier pour plus de clareté, mais je vous invite a bien séparer ces fichiers pour plus de clareté.

Conclusion

Dés lors, il devient tres facile d’implémenter de l’AJAX dans nos pages Web.  Des connaissances en JS et , sans pour autant gérer les échanges, sont nécessaires.
De plus, couplé a ScriptAculous, on retrove un environnement tellement ’simple’ que je me demande meme comment j’ai pu m’en passé avant !!!!

Le package est vraiment tres pratique et fourni aussi des fonctions de debogage (regardez dans le AJAX_Utils.js)

Depuis que j’ai intégré ce package à mes sites, je nepeux plus m’en passer: Ne plus recharger les pages, gérer le contenu dynamiquement, c’est vraiment pratique et très simple.

N’hésitez pas à me contacter pour avoir des compléments d’informations.


Par ici la suite :

Devel , , ,

  1. Pas encore de commentaire
  1. Pas encore de trackbacks
Es-tu humain ?