1. Retour à l'accueil Général
  2. Accueil activité
  3. Un site dynamique , partie I
  4. Un site dynamique partie II
    1. De bonnes bases
    2. Travail avancé sur un élément du DOM
    3. Les photos
    4. Des exemples intermédiaires

Un site dynamique

Programmation jquery et javascript

7) Les photos , les photos : bon d'accord !
Elle sont stockées dans le répertoire images. Par exemple pour la marque ducati, cela donnerait depuis la page index.html :
jolie moto dommage !
On peut copier / coller cette ligne dans le fichier html pour voir si elle fonctionne .
Modifier ensuite le chemin vers l'image en faisant une erreur .
Revenons à nos moutons, plus exactement nos motos . La marque , on l'obtient en cliquant sur la ligne ,on la récupère ainsi : $(this).text()
Le chemin deviendrait en javascript en gros :
source = 'jolie moto dommage !';

quel est le problème ? En programmation classique, pour récupérer la liste des photos, on parcourt le répertoire et on récupère la liste des images . Ici cela n'est pas possible , pour l'instant, tout est sur votre ordinateur , mais quand les pages seront publiées , le javascript s'exécutera sur votre ordinateur, et les images seront stockées sur le serveur, donc impossible de scanner le contenu du répertoire situé sur le serveur depuis votre ordinateur :


C'est pour cela , que sur un serveur on stocke les informations dans une base de données, que l'on peut interroger plus facilement , par exemple, le développeur devrait :
1 -> Enregistrer chaque image sur le serveur
2 -> indiquer sous forme de données structurées l'emplacement de l'image, les informations supplémentaires nécessaires (par exemple le prix , l'année de sortie , les couleurs possibles ...)
Pour l'instant, notre réponse sera de compléter notre javascript dans le fichier monscript.js puisque on ne travaille pas encore sur un serveur .
A ce stade, la réflexion crayon -papier (algo quoi !) est obligatoire . voici une proposition de résolution de notre problème .
a) On modifie le chargement du tableau des marques en le nom des fichiers des photos.
b) Quand on affiche la liste (li) , on vérifie que la taile tableau de données est supérieure à deux (l'entrée 0 est la marque, l'entrée 1 est l'activation dans le menu, les autres seront les noms des fichiers photos).
c) si il y a plus de deux entrées, on affiche dans la liste : l'entrée 0 (la marque) , un tiret du milieu, puis le nom de la photo dans un span avec comme class : nomphoto . Les photos se trouvent entre l'entrée 2 et longueur du tableau -1.
d) On détecte en suite le clique sur la class nomphoto, on extrait le nomde la phot, puis la marque en utilisant la fonction javascript split.
e) On affiche l'image !

Au travail !

Une seule modification à faire dans le fichier index.html :
Ajouter le code :
dommage c'est une jolie moto
A noter que l'on utilise un id (identifiant unique), car on n'affichera qu'une seule image. enregistrer , fermer .
C'est parti pour le javascript :
Le chargement des données , exemple de modification pour la marque ducati:
lesmarques.push(['ducati',1,'1098.jpg','848.jpg','colecao.jpg','diavel.jpg','diavel.png','hypermotard.jpg']);
Notre boucle d'affichage s'écrit ainsi :

On va sa placer dans la partie orange (le texte afficher) dans la liste, puis ,

puis on regarde s'il y a des images à charger (tableau plus grand que 2) et on ajoute le span avec le trait d'union avant

La partie jquery :