Ressources matérielles : Poste de travail Windows / Linux Ubuntu
Ressources logicielles :
Bibliothèques jQuery et jQuery UI
Plugin Firebug de Firefox
Netbeans pour le développement
Introduction
Généralités
jQuery UI est une bibliothèque basée sur jQuery qui permet de l'enrichir de
composants d'interface homme machine comme des onglets, des calendriers, des
menus, etc ...
Une fois le fichier téléchargé et décompressé, le répertoire jquery-ui-1.11.4 contient
les deux sous-répertoires et les neufs fichiers ci-dessous.
Le répertoire "external" contient le fichier "jquery.js".
Le répertoire "images" contient des images.
Le fichier "index.html" est un fichier de démonstration.
Application à réaliser
L'objectif de ce TP est de réaliser une application cliente sous jQuery UI mettant en
oeuvre trois fonctionnalités : Les onglets, le calendrier et le complètement automatique.
Le premier onglet, appelé "Acquisition", permettra de visualiser une valeur numérique, acquise sur le serveur.
Le deuxième onglet, appelé "Date", permettra de saisir une date à l'aide d'un calendrier.
La date saisie sera envoyée à un serveur et sera traitée par un script qui la
retournera au client pour attester de la bonne réception.
Le dernier onglet, appelé "Autocomplétion", permettra de mettre en oeuvre le complètement automatique.
On dit aussi, par anglicisme, complétion ou autocomplétion.
Il s'agit d'assister un utilisateur en cours de saisie en lui proposant une liste de mots proches
de celui en cours de frappe.
Dans le cadre du TP, au fur et à mesure de la saisie, le serveur renverra à l'utilisateur
deux propositions figées (Proposition 1 et Proposition 2) et une troisième
correspondant au texte en cours de frappe.
Dans une application normale, le serveur renvoi à l'utilisateur l'ensemble des mots,
issus d'une base de données, proches de la saisie en cours.
Mise en oeuvre des onglets
Introduction
La génération d'onglets sous jQuery UI est établie à partir de 4 tags :
Un bloc (<div>) qui englobe la définition de la série d'onglets.
Une liste non ordonnées (<ul>) pour créer la barre d'onglets.
Un ensemble d'items de liste (<li>), chaque item correspondant à un onglet.
Un ensemble de blocs (<div>) à raison d'un bloc par contenu d'onglet.
Etude à réaliser :
Se connecter sur le site de jQuery UI et se rendre dans le menu Widgets/Tabs.
Cliquer sur View Source afin d'étudier le code jQuery UI de l'exemple.
Repérer les tags énoncés ci-dessus.
Développement
Compléter le code ci-dessous afin d'obtenir le squelette d'une application comprenant trois onglets
"Acquisition", "Date" et "Autocompletion".
Insérer, dans le contenu de l'onglet "Acquisition" le traitement demandé dans le cahier des charges.
Le valeur retournée par le serveur sera un nombre pris au hasard entre 3 et 75.
On utilisera un code similaire à celui étudié lors du TP7 sur l'introduction à Ajax et à jQuery.
Mise en oeuvre d'un calendrier
Introduction
L'objectif est de faciliter la saisie d'une date dans un champ d'édition de formulaire.
La date saisie sera envoyée au serveur via ajax.
Le script serveur qui traitera la requête retournera la date au client.
La date saisie par l'utilisateur sera affichée pour valider le fonctionnement.
Etude à réaliser :
Se connecter sur le site de jQuery UI et se rendre dans le menu Widgets/Datepicker.
Cliquer sur View Source afin d'étudier le code jQuery UI de l'exemple.
Développement
Compléter le code précédent afin de faire apparaître un calendrier lors du clic sur la zone d'édition.
Rechercher, dans la documentation de Datepicker, la signification de l'option onSelect.
Mettre en place une fonction associée à l'événement précédent pour effectuer une requête
ajax sur le serveur qui sollicite le script "script.php" ci-dessous.
Valider le bon fonctionnement de l'application telle que préconisée par le cahier des charges.
Fichier "script.php" :
<?php
$date=$_REQUEST["date"];
$txt="Date retournee par le serveur : ".$date;
echo $txt;
?>
La gestion de la requête ajax à partir de l'événement se fait à partir du code ci-dessous, à compléter.
L'autocomplétion permet d'accompagner la saisie de l'utilisateur dans une boîte
d'édition afin de lui proposer une série de mots ou chaînes de caractères pouvant
correspondre à ce qu'il vient de frapper.
Dans le cadre du TP, il s'agit de valider le fait que chaque frappe
occasionne une requête serveur.
En temps normal, le serveur interrogerait une BDD afin de retourner la liste
des chaînes de caractères pouvant correspondre à la saisie.
Dans le TP, deux chaînes de caractères constantes seront renvoyées par le serveur
ainsi que le texte en cours de frappe, afin de valider le fonctionnement global.
Etude à réaliser :
Se connecter sur le site de jQuery UI et se rendre dans le menu Widgets/Autocomplete.
Cliquer sur View Source afin d'étudier le code jQuery UI de l'exemple.
Développement
Soit le script sollicité à chaque frappe clavier pour assurer l'autocomplétion :
Que fait ce script ? Sauvegarder le code dans un fichier php.
Soit les lignes de code jQuery / jQuery UI permettant d'assurer l'autocompletion :
<script>
$("#saisie").autocomplete({
source : function(requete, callback) {
var donneeserveur={ texteclient : requete.term};
$.ajax({
url : "*****",
data : *****,
complete : function(xhr,resultat) {
var reponse=*****;
var propositions=[];
$(reponse).filter("li").each(function() {
propositions.push($(this).text());
});
callback(propositions);
}
});
}
});
</script>
Quel est l'id du champ d'édition (tag ) dans lequel sera assuré
l'autocomplétion? Par quels moyen est récupérée la saisie en cours? A quoi sert le
tableau propositions?
Compléter et mettre en œuvre le code précédent (en s'appuyant sur ce qui a été
déjà fait) afin d'assurer, avec le script du 1, l'autocomplétion du champ de saisie
comme indiqué dans le cahier des charges.