PEAR HTML_AJAX
Vous utilisez Pear 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 : >pear install HTML_AJAX
Utilisation
Création des fichiers:
Voila comment j’ai organisé ma structure:
/auto_server.php
/ajax.php
/javascript/ajax.js
/class/ajax.class.php
Fonctionnement du package PEAR/AJAX:
C’est un fonctionnement un peu bizare au premier abord:
Dans ma page, l’appel à une fonction javascript(client) appelera la fonction php éponyme (serveur).
Le retour de cette exécution(serveur) sera renvoyée à ladite fonction javascript (client) pour traitement.
Contenu des fichiers
ajax.php:
<html>
<head>
<script type=’text/javascript’ src=’auto_server.php?client=all&stub=all’></script>
<script type=’text/javascript’>
<!–
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>
/javascript/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.php
<?php
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 à $i <br /> ";
}
return $affiche;
}function date_heure() { // renvoi la date/heure courante.
return date("H:i:s d/m/Y");
}
}
?>
auto_server.php
<?php
require_once ‘HTML/AJAX/Server.php’;
class AutoServer extends HTML_AJAX_Server {
var $initMethods = true;function initajax() { //
require_once ‘class/ajaxclass.php’;
$myAjax = new ajax();
$this->registerClass($myAjax);
}
}
?>
Explications:
La page "auto_server.php" n’a pour seul but que d’instancier la classe et le package pear 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 php est fait. Le retour de celle-ci est envoyé à la fonction javascript du même nom. Il est alors aisé d’afficher le contenu.
Les paramètres de cette fonction sont ceux de la fonction PHP.
Exactement pareil pour la secconde fonction.
J’ai volontairement séparer les classes, javascripts et fichier php 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 PHP, sans pour autant gérer les échanges, sont nécessaires.
De plus, couplé a ScriptAculous, on retrove un environnement Web2.0 tellement ‘simple’ que je me demande meme comment j’ai pu m’en passé avant !!!!
Le package pear 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.
Ces articles devraient vous plaire
