Découverte du Framework jquery Mobile en autonomie pour le contexte GSB (PARTIE 4)

Documents pareils
Optimiser pour les appareils mobiles

Thème : Création, Hébergement et référencement d un site Web

Devenez un véritable développeur web en 3 mois!

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

Sommaire. I.1 : Alimentation à partir d un fichier Access (.mdb)...2

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

PHP 5. La base de données MySql. A. Belaïd 1

SYSTÈMES D INFORMATIONS

TP JAVASCRIPT OMI4 TP5 SRC

PREMIERE UTILISATION D IS-LOG

< Atelier 1 /> Démarrer une application web

Bureautique Initiation Excel-Powerpoint

Table des matières L INTEGRATION DE SAS AVEC JMP. Les échanges de données entre SAS et JMP, en mode déconnecté. Dans JMP

Schéma relationnel et contraintes d intégrité : le cas ConduiteAuto

Projet en nouvelles technologies de l information et de la communication

2 LES BASES DU HTML 19 Qu est-ce que le HTML? 20 De quand date le HTML? 20 Écrire son propre code HTML 22

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Présentation du Framework BootstrapTwitter

Stockage du fichier dans une table mysql:

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Sommaire. 1 Introduction Présentation du logiciel de commerce électronique 23

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

Plateforme PAYZEN. Intégration du module de paiement pour la plateforme Magento version 1.3.x.x. Paiement en plusieurs fois. Version 1.

Procédure pour emprunter ou réserver un livre numérique

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

Guide d utilisation pour W.access - Client

TP2 : Client d une BDD SqlServer

Configuration de plusieurs serveurs en Load Balancing

Connexion au site GeantCasino.fr 23/10/2009

Comment déposer les comptes annuels des associations, fondations et fonds de dotation.

1 Position du problème

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Gestion d'un parc informatique avec OCS INVENTORY et GLPI

Objectifs du TP : Initiation à Access

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Groupe Eyrolles, 2003, ISBN : X

Formation : WEbMaster

Sommaire. Préface 1 : Pourquoi choisir Magento? Chapitre 1 : Magento, quésaco? Chapitre 2 : Quoi sous le capot?

Comment consulter la Photothèque de Paris 1

Document Object Model (DOM)

Modules ICI relais & EXAPAQ Predict v4.0

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

Connexions à un projet CVS via Eclipse en accès local et distant. 15 Mai 2007

EXTENSION de Microsoft Dynamics CRM Réf FR 80452

Guide d installation de Gael

Créer un site Web : mode d emploi Sous SPIP, avec le squelette «établissement» de l académie de Versailles

Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10

Description des pratiques à adopter pour la mise à jour du layout en utilisant le gestionnaire de conception de Sharepoint 2013

SIO-SISR : Projet GSB. LOT 1 : Evaluation d un logiciel d inventaire et de gestion de parc. BTS Services Informatiques aux Organisations 1 ère année

TP 5 Les CMS, la forme et le fond Internet et Outils (IO2)

Déclarer un serveur MySQL dans l annuaire LDAP. Associer un utilisateur DiaClientSQL à son compte Windows (SSO)

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Campagnes d ings v.1.6

Dossier I Découverte de Base d Open Office

Dans cette Unité, nous allons examiner

Utiliser un CMS: Wordpress

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

BIRT (Business Intelligence and Reporting Tools)

COMPTABILITE SAGE LIGNE 30

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

mon site web via WordPress

Comment l utiliser? Manuel consommateur

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

Signature électronique sécurisée. Manuel d installation

Excel avancé. Frédéric Gava (MCF)

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Diffuser un contenu sur Internet : notions de base... 13

Module de livraison DPD Magento

MANUEL WORDPRESS. Objectif: Refonte d un site web sous Wordpress I PRE-REQUIS: 1 / Créer un backup (sauvegarde) du site:

Structure fonctionnelle d un SGBD

FACTURATION. Menu. Fonctionnement. Allez dans le menu «Gestion» puis «Facturation» 1 Descriptif du dossier (onglet Facturation)

Guide de l utilisateur Mikogo Version Windows

Notes pour l utilisation d Expression Web

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Système Normalisé de Gestion des Bibliothèques -SYNGEB : version Réseau-

Guide de l utilisateur. Faites connaissance avec la nouvelle plateforme interactive de

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Administration en Ligne e-démarches. Console du gestionnaire. Guide utilisateur. Aout 2014, version 2.1

Manuel d utilisation du site web de l ONRN

INCORPORER EXCEL EN LIGNE DANS UN FICHIER CRÉÉ AVEC L ÉDITEUR DE TEXTE 15 avril 2015

Maarch V1.4

Gestion de contenu d un site web avec TYPO3 Manuel de l administrateur

Manuel d utilisation du module Liste de cadeaux PRO par Alize Web

Soon_AdvancedCache. Module Magento SOON. Rédacteur. Relecture & validation technique. Historique des révisions

1. Création du profil

Tutorial sur SQL Server 2000

DOM - Document Object Model

Encryptions, compression et partitionnement des données

Déclarer un serveur MySQL dans l annuaire LDAP. Associer un utilisateur DiaClientSQL à son compte Windows (SSO)

EXTENSION WORDPRESS. Contact Form 7. Proposé par :

Manuel d utilisation DeveryLoc

NIMEGUE V3. Fiche technique 3.07 : Sauvegarde / Restauration manuelle

NOTICE TELESERVICES : Demander un état hypothécaire

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Transcription:

Découverte du Framework jquery Mobile en autonomie pour le contexte GSB (PARTIE 4) Description du thème Propriétés Description Intitulé long Formation concernée Matière Présentation Notions Prérequis Outils Mots-clés Durée Auteur(es) Version v 1.0 Date de publication Découverte en autonomie du Framework jquery Mobile avec le contexte GSB dans sa partie gestion des rapports de visite BTS SIO option SLAM SLAM4 ou phase préparatoire de PPE3 et PPE4 Accompagnement dans la découverte de jquery Mobile ; des sites de références sont proposés afin de développer pas à pas une application à partir du contexte GSB D4.1 - Conception et réalisation d une solution applicative D4.2 - Maintenance d une solution applicative Savoir-faire Programmer un composant logiciel Exploiter une bibliothèque de composants Adapter un composant logiciel Valider et documenter un composant logiciel Programmer au sein d un framework Les principes du développement web, PHP, SQL SGBD MySql, un environnement de développement GSB, jquery Mobile, Ajax 10 heures Patrice Grand, Gildas Spéno relectrice attentive et éclairée Mars 2016 Quatrième et dernière partie de cette découverte approfondie de jquery Mobile qui aborde la création dynamique, dans le code jquery, de widgets ainsi que quelques points de sécurité. http://www.reseaucerta.org CERTA - juin 2016 v1.0 Page 1/10

Création d un rapport de visite Dernière étape ; la création d un nouveau rapport de visite. C est certes un peu long mais cela ne fait pas appel à des notions nouvelles. On désire, à partir du menu «mes visites», créer un nouveau rapport. Fig 38 Cette création de rapport contient des champs de recherche et de saisies : La partie haute du formulaire contient la recherche du médecin et la saisie des motifs, bilan et date ; nous avons privilégié le mode tablette ici encore : Fig 39 http://www.reseaucerta.org CERTA - juin 2016 v1.0 Page 2/10

La partie inférieure permet d ajouter les médicaments offerts, ainsi que leurs quantités : Fig 40 Lorsque l on clique sur nouveau médicament, un champ de recherche du médicament s ouvre ; on peut, après avoir choisi le médicament, indiquer la quantité offerte : Fig 41 Le visiteur peut sélectionner plusieurs médicaments et leurs quantités. Le formulaire se termine par l enregistrement du rapport de visite. http://www.reseaucerta.org CERTA - juin 2016 v1.0 Page 3/10

La partie médecin a) Côté HTML Il faut ajouter une nouvelle page ajouterrapport.php dans laquelle figurent le champ de recherche et son couple label/input associé, ainsi que les 3 autres couples label/input pour le bilan et le motif de type textarea, et un dernier couple pour la date, label et input de type date. 37. Ajouter cette nouvelle page avec les éléments HTML évoqués ci-dessus. b) Côté jquery Pour mettre en œuvre le champ de recherche du médecin, le code est le même que dans la page médecins dans sa première version sans champ caché. c) Côté PHP Vous utilisez la même page PHP que pour la page médecins. 38. Traiter la partie jquery et PHP. Tester. La partie médicaments C est un peu plus délicat car le visiteur peut ajouter à volonté de nouvelles zones de recherche de médicament et la quantité ; ainsi, tout doit être écrit en jquery de manière dynamique. a) Côté HTML Peu de chose : Fig 42 La div leslistesmedicaments va recevoir tout le code jquery dynamique. http://www.reseaucerta.org CERTA - juin 2016 v1.0 Page 4/10

39. Compléter la page ajouterrapport.php avec les éléments HTML évoqués ci-dessus. b) Côté jquery Il faut d abord intervenir sur le "click" du bouton «nouveau médicament» $("#pageajouterrapport #btnajoutmedicament" ).bind("click",function(){ Observons d abord ce que doit rendre le code jquery lorsque l on ajoute un nouveau médicament ; FireBug nous permet de visualiser le code de la source : Fig 43 La zone surlignée en bleu montre la zone de liste (listview) qu il faudra générer en jquery ; notez l id pour cette première liste demandée par le visiteur. La zone de texte est également identifiée de manière dynamique, medicament1. À la dernière ligne apparaît le widget (slider) qui permet de définir la quantité de ce médicament offert (pas encore déplié ici). http://www.reseaucerta.org CERTA - juin 2016 v1.0 Page 5/10

Ainsi, il faudra : - générer une liste (listview), data-filter=true avec un id dynamique ; - ajouter la zone de texte ; - ajouter le widget slider. Pour créer ces éléments, qui n existaient pas dans la page HTML d origine, il faudra appeler un événement de création à la place de la méthode refresh déjà utilisée : $("#pageajouterrapport #leslistesmedicaments").trigger( "create"); Par ailleurs, il faudra déclarer une variable à portée globale afin de mémoriser le nombre de médicaments offerts : window.nbmedicaments et l incrémenter à chaque demande d ajout de médicament. Pour le nouveau widget, il faudra aller sur le site officiel de jquery ou consulter le PDF en annexe. On vous fournit le début du code : 40. Réaliser ce qui est détaillé ci-dessus. Tester avec plusieurs médicaments. La deuxième partie jquery concerne le chargement des médicaments dans la listview, qui a lieu sur l événement filterablebeforefilter que vous avez déjà rencontré : $("#pageajouterrapport #leslistesmedicaments").on( "filterablebeforefilter","ul", function (e, data ){ On vous fournit le code commenté de cette méthode un peu délicate : Fig 44 http://www.reseaucerta.org CERTA - juin 2016 v1.0 Page 6/10

La page PHP associée traiterrecherchemedicaments.php reprend les mêmes objectifs que la recherche de médecins. Cette page appelle une fonction pdo : $lesmedicaments = $pdo->getlesmedicaments($nommedicament); La fonction de retour foncretourrecherchemedicaments n offre pas de difficultés particulières : - parcours des médicaments ; - pour chaque médicament, ajout d une balise li + HREF qui contient le nom du médicament ; l id de la balise li est l id du médicament ; - après la boucle, on met le code HTML dans la bonne ul!! celle dont l id a été stocké en global ; - ne pas oublier de rafraîchir la listview. 41. Réaliser ce qui est détaillé ci-dessus. Tester avec plusieurs médicaments. Nous avons presque terminé. Il nous reste à sélectionner le médicament et le copier dans la zone de texte prévue à cet effet. Cette action est réalisée lorsque l on clique sur un élément de la listview des médicaments, figures 40 et 41 : $("#pageajouterrapport #leslistesmedicaments").on("click","li", function(e,data) {... La difficulté est de mettre le médicament courant dans la zone de texte qui lui est adjacente, enfin presque!! Observez le code HTML (transformé par jquery) et sa structure du DOM : Fig 45 L événement "click" est relatif à chaque balise li ; par rapport à chaque balise li (this dans le code de la méthode on), l input text est le premier fils (la dernière ligne du code) de l élément le plus proche de son père. On vous rappelle les syntaxes suivantes : $(selecteur).next() retourne le premier voisin de même niveau http://www.reseaucerta.org CERTA - juin 2016 v1.0 Page 7/10

$(selecteur).children() retourne son premier fils dans le DOM $(selecteur).parent() retourne le père Par exemple : $(selecteur).children().parent() retourne le sélecteur lui-même. La méthode on, dont la signature est fournie plus haut, doit donc : - récupérer l id et le champ text de la balise li courante ; - récupérer le sélecteur de l input text associé ; - mettre la valeur de l id dans la propriété name de l input text et dans sa value le champ text de la balise li courante (cf fig 45) ; - vider la listview. 42. Réaliser ce qui est détaillé ci-dessus. Enregistrement du rapport C est la dernière étape ; sur le "click" du bouton Enregistrer figurant en bas de la page de création d un rapport, il faudra mener une requête Ajax après avoir récupéré les données saisies. $("#pageajouterrapport #btnenregistrerrapport").bind("click",function(){ Il n y a pas de difficultés particulières ; seulement peut-être la découverte de la gestion des tableaux d objets en JavaScript puisque les médicaments offerts seront passés sous forme de tableau d objets. Plusieurs sites traitent de cette question ; plusieurs syntaxes sont proposées, néanmoins vous pouvez utiliser : - déclaration et construction d un tableau var lesmedicaments = [] ; - comment on déclare et valorise un objet var unmedicament = { id : idmedicament, qte : laqte} ; - comment on ajoute un objet dans un tableau lesmedicaments.push(unmedicament) ; 43. Écrire la méthode bind, la page PHP appelée par Ajax et le code pdo pour les méthodes insert. Remarque : Vous pouvez utiliser un outil de débogage côté serveur en utilisant la fonction error_log de PHP. Ainsi l appel, error_log($req,3,"log.php") permet d enregistrer dans le fichier log.php le contenu de la variable $req. http://www.reseaucerta.org CERTA - juin 2016 v1.0 Page 8/10

Pour terminer, un peu de sécurité Nous devons sécuriser un minimum l application afin que quiconque ne puisse accéder aux informations sur le serveur, s il n est pas authentifié comme visiteur. Chaque page PHP, appelée par une requête Ajax, doit ainsi vérifier que l appel provient de quelqu un qui est connecté. Rappelez-vous qu à la connexion, le visiteur est enregistré en session (figure 18) ; voici le code pour un fichier PHP : Fig 46 44. Procéder de la sorte pour tous les fichiers PHP. Ces modifications n empêcheront pas un utilisateur de lancer l application, mais aucune donnée ne lui sera retournée. Si nous voulons, en plus, empêcher l accès aux pages, nous pouvons demander à jquery, à chaque demande de page, de lancer une requête Ajax pour vérifier si le visiteur est connecté. 1) Côté jquery Fig 47 http://www.reseaucerta.org CERTA - juin 2016 v1.0 Page 9/10

2) Côté PHP Le fichier traiterdemandepage.php : Fig 48 Bien évidemment, ce dernier traitement côté jquery peut être contourné puisque l utilisateur dispose du code D autres contrôles peuvent être envisagés ; s assurer que le visiteur qui modifie un rapport en est bien le propriétaire (simple) ou éviter qu un visiteur ne se connecte plus d une seule fois en même temps (plus délicat). Ceci termine la présentation de jquery Mobile ; le corrigé se trouve dans le répertoire CorrigegsbMobileFinal. http://www.reseaucerta.org CERTA - juin 2016 v1.0 Page 10/10