AJAX (Asynchronous JavaScript and XML) Principe: utilisation de la
Transcription
AJAX (Asynchronous JavaScript and XML) Principe: utilisation de la
AJAX (Asynchronous JavaScript and XML) Principe: utilisation de la classe XMLHttpRequest et des librairies aculo , jquery , prototype série 1 source de départ <html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <script language="JavaScript"> function verif() { req = new XMLHttpRequest(); req.onreadystatechange = function() { if(req.readyState == 4) { document.monform.suite.value=req.responseText; } } appel="data.php?val="+document.monform.dyn.value; req.open("GET",appel , true); req.send(null); } </script> </head> <body> <form name="monform" method="POST" action=""> entree:<input type="text" name="dyn" size="32" value="" onKeyup="verif()"> sortie:<input type="text" name="suite" size="32" value=""> </form> </body></html> Exercice1 (base d'AJAX: XMLHttpRequest) En reprenant l'exemple ci-dessus, réaliser une page html avec 2 zones de texte, la premiere permettant de saisir un nom, la deuxieme affichant le nombre d'abonnés correspondant aux caractères saisis. Vous devez créer 2 fichiers: le fichier exo1.htm et le fichier data.php Exercice 2: Idem exercice 1 mais avec une zone div pour la zone d'affichage et en utilisant la librairie jquery Astuce: voir $(....).load(....) pour ecrire dans un div et $(...).keyup(....) pour la détection de saisie et $(...).attr(....) pour récupérer la valeur de la zone de saisie d'entrée Exercice3: (en utilisant la librairie jquery) idem sauf que dans la deuxieme apparaît la liste des abonnés correspondant aux caractères saisis. série2 Exercice1: (librairie jquery) mettez en oeuvre la complession automatique sur le champ identification de l'abonné. Exercice 2: (librairie jquery /AJAX) faire un formulaire de modification des propriétés d'un abonné (une premiere zone de saisie permet de rentrer l'id de l'abonné tandis que le champs « nom » se rempli automatiquement sans bouton de validation, les modifications faites dans la zone nom,sont mises à jour dans la base de données à la volée. (voir demo) astuces: • utiliser $("# ... ").load( ... ) pour créer le formulaire à la volée dans un div • utiliser $.ajax(...) pour mettre à jour les modifications dans la base lors de la saisie dans les champs Exercice 3: Intégrer cette fonctionnalité dans le back-office de Stpavut en prévoyant une page avec la liste de tous les abonnés et lors du click sur l'un d'eux un div « s'ouvre » avec un formulaire prérempli pour modifier à la volée les infos de l'abonné.(voir demo) Exercice4: (librairie jquery) En utilisant les script « jquery ui », mettez en oeuvre dans la partie regisseur le drag&drop sur la liste des abonnés. Le fait de prendre un nom d'abonné et de l'amener sur une zone « poubelle » devra supprimer l'abonné de la liste. Exercice 5: prévoir la possibilité d'ajouter un nouvel abonné de façon dynamique dans cette page (utiliser encore AJAX) le fait de cliquer sur valider ne recharge pas la page (voir demo) mais rajoute bien l'abonné dans la base. exercice 6: améliorer l'ergonomie de l'ensemble en ajoutant des effets prédéfinis de jquery (voir demo) série3 Exercice1:(librairie jquery) Réaliser une page de chat en AJAX sur le site StPavut pour les visiteurs. ● Créer une table chat(id , pseudo, phrase , temps , ip) ● Créer une page valider.php avec 2 parametres d'entrées qui devra stocker le message dans la table (ex: valider.php?pseudo=bob&phrase=salut) ● Créer une page lire.php qui devra afficher les 10 derniers messages de la base sous la forme « bob>salut<br>toto>hello.... » ● tester votre systeme de chat avec 2 fenetres de navigateur ● realiser une page html avec 2 zones de saisie (pseudo et phrase) , un bouton et une zone div qui recevra les discussions ● ● ● ● ajouter les scripts dans cette page html permettant via AJAX de gérer le chat. (utiliser prototype.js) ○ utiliser $.timer() (penser à télécharger jquery.timer.js sur http://code.google.com/p/jquery-timer/ , ou alors utiliser la methode javascript setinterval() ou settimeout ) pour relire régulièrement les nouveaux messages et $(...).load() ou $.ajax() pour envoyer les phrases saisies. rechercher une solution javascript pour que la validation s'effectue lors de l’appuie sur la touche « Entrée » du clavier valide la phrase. ○ pour cela vous pouvez ré-utiliser la méthode $(....).keyup( function(event){ …. } ) sachant que event.which retourne le code ASCII de la touche appuyée. Exemple d'utilisation de base : $(....).keyup( function(event){ alert(event.wich ) ; } ) Ajouter le script nécessaire pour « purger » la zone de saisie de la phrase après chaque validation utiliser un framework css (ex : kickstart voir http://www.99lime.com ) pour mettre en forme le chat. Exercice2 (TP1): reprendre l'ensemble des exercices en les intégrant sur le site « Saint Pavut » : 1. une page (une ressource document) avec le chat (avec une mise en forme avec par exemple kickstart) (voir demo : http://195.83.128.55/~fmeuzeret/modx2/index.php?id=17 ) 2. une page de recherche avec complétion de manifestation (voir demo : http://195.83.128.55/~fmeuzeret/modx2/index.php? id=13 avec effet « fade » et http://195.83.128.55/~fmeuzeret/modx2/index.php?id=11 sans effet « fade ». pour essayer, tapez par exemple p, pa, par, paris, ... ) 3. un lien vers un dossier protégé par htaccess (type Dutaf SRC1 : htpassword : sgbdr:rlGyLrmS3JENk pour l'accès prof et rajouter le votre en plus ) pour le mini back-office (à faire hors modx) d'ajout/modifier/supprimer un abonné). Vous pouvez mettre en forme ce mini-backoffice en utilisant un framework css comme « bootstrap twitter »