Bonjour,
J'ai quelques difficultés de débutant en JavaScript : J'utilise le logiciel Filmotech pour ma vidéothèque. Et je voudrais afficher dans un fichier HTML, la liste de toutes les fiches de films que j'ai répertoriés. Je peux le faire à partir de la base de données du logiciel, qui est un fichier XML auquel s'ajoute un dossier d'images. J'ai le script suivant, qui m'extrait et m'affiche mes données depuis le fichier XML (sans recourir à un serveur Web) :
Voilà le code dans le header :
1 2 3 4 5 6 7 8 9 | if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("GET","Filmotech_Films.XML",false); xmlhttp.send(); xmlDoc=xmlhttp.responseXML; |
Et le code dans le body :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | document.write("<div class=\"list-item\">"); var x=xmlDoc.getElementsByTagName("Film"); for (i=0;i<x.length;i++){ document.write("<img src=\"Affiches/Filmotech_"); document.write(x[i].getElementsByTagName("ID")[0].childNodes[0].nodeValue); document.write(".JPG\" /><h3>"); document.write(x[i].getElementsByTagName("TitreVF")[0].childNodes[0].nodeValue); document.write("</h3><p class=\"tags\">"); document.write(x[i].getElementsByTagName("Genre")[0].childNodes[0].nodeValue); document.write("</p><p class=\"ext-info\">"); document.write(x[i].getElementsByTagName("Annee")[0].childNodes[0].nodeValue + " - "); document.write(x[i].getElementsByTagName("Duree")[0].childNodes[0].nodeValue + "min. - "); document.write(x[i].getElementsByTagName("Pays")[0].childNodes[0].nodeValue); document.write("</p><dl class=\"int-info\"><dt>De :</dt><dd>"); document.write(x[i].getElementsByTagName("Realisateurs")[0].childNodes[0].nodeValue); document.write("</dd><dt>Avec :</dt><dd>"); document.write(x[i].getElementsByTagName("Acteurs")[0].childNodes[0].nodeValue); document.write("</dd><dt>Synopsis :</dt><dd>"); document.write(x[i].getElementsByTagName("Synopsis")[0].childNodes[0].nodeValue); document.write("</dd></dl><p class=\"file-info\">"); document.write(x[i].getElementsByTagName("Support")[0].childNodes[0].nodeValue); document.write("</p>"); } document.write("</div>"); |
C'est déjà un truc de dingue pour moi, d'être arrivé à ce résultat. Mais il me reste une difficulté : afficher les images. En effet, dans le fichier XML, chaque item(film) porte un numéro identifiant (en chiffre) qui correspond au nom de l'image dans le dossier. Et le problème, c'est que les noms de fichier sont sous la forme "Filmotech_00000.JPG". En fait, l'identifiant remplace le(s) dernier(s) zéro(s) sur une série de 5 chiffres. Par exemple, pour l'item portant l'ID "42", l'image est "Filmotech_00042.JPG". Pour l'ID "7", l'image est "Filmotech_00007.JPG". Pour l'ID "2500", l'image est "Filmotech_02500.JPG"…
Donc je cherche le moyen d'écrire le numéro ID précédé des zéros complémentaires pour arriver aux 5 chiffres du nom de l'image. J'y arriverais s'il n'y avait qu'un seul item car je pourrais déclarer plusieurs variables pour le même item. Mais là, je ne vois pas comment tout caler dans la boucle…
Merci d'avoir lu et deux fois plus de merci à l'avance pour votre aide.