Package permettant de réaliser des appels AJAX avec une trés forte interaction avec PHP, d'une façon simplissime !

Vous trouverez le packet ici : HTML_AJAX
Attention, il n'est pas encore en version stable !

Exemple

Je m'appuie sur un exemple de Gabriel Ricard :

index.html
<html>
<head>
<title>Hello World</title>
<script type="text/javascript" src="controller.php?client=all&stub=helloworld"></script>
<script>
	function doHello()
	{
		var HW = new helloworld();
		var result = HW.sayHello();
		document.getElementById("target").innerHTML = result;
	}
</script>
</head>
<body>
<div id="target"></div>
<br>
<input type="button" value="Say Hello" onclick="doHello();">
</body>
</html>
controller.php
<?php
require("HTML/AJAX/Server.php");
require("HelloWorld.class.php");
 
$server = new HTML_AJAX_Server();
 
$hw =& new HelloWorld();
 
$server->registerClass($hw);
 
$server->handleRequest();
?>
HelloWorld.class.php
<?
 
class HelloWorld
{
	function sayHello()
	{
		// uncomment the line below to see why synchronous calls are bad
		//sleep(10);
		return "Hello, the time is " . date("n/j/y g:i:s a");
	}
}
 
?>

Télécharger l'exemple de Gabriel Ricard

Explications

  1. La classe HelloWorld contient une méthode bête et méchante qui nous renvoie l'heure. Pas compliqué.
  2. Le controller instancie le "server" AJAX, et inscrit la classe HelloWorld. L'appel à handleRequest génere le code javascript adéquat.
  3. Le fichier index.htm inclue le code javascript généré, un div target, et un simple bouton, sur lequelle l'action onclick appelle la méthode JavaScriptdoHello(). Dans cette méthode, nous instancions un nouvelle objet de la classe helloworld, puis nous pouvons appeler la méthode sayHello() que nous avons écrit dans notre classe PHP. Il ne reste plus qu'à afficher le contenu dans notre div !

Un vrai jeu d'enfant!

Résultat

Voir ici le Résultat, jetez un oeil au code source de la page, il peut être interressant de voir le javasript ainsi généré.

Liens Utiles

Getting Started
Exemples
Exemple de formulaire de recherche <-- trés interressant, appel du traitement d'un formulaire en AJAX !