Ajouter une option dans un sélect |
Répondre ![]() |
Auteur |
![]() ![]() |
Nandjm ![]() Newbie ![]() Depuis le: 03 Sep 2020 Pays: France Status: Inactif Points: 22 |
![]() ![]() ![]() ![]() ![]() Envoyé : 27 Avr 2022 à 15:20 |
Bonjour, Le code suivant fonctionne très bien sur une page "basique" hors OpenElement et je l'ai donc modifié pour prendre en compte la liste déroulante qui est sur la page. Ce code a été ajouté en End Body - en javascript sur la page OpenElement. var listepays = document.querySelector('*[id^="WE7572973d2e"]'); function Get_Pays() { var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = () => { // La transaction est terminée ? if(xmlhttp.readyState == 4) { // Si la transaction est un succès if(xmlhttp.status == 200) { // On traite les données reçues let donnees = JSON.parse(xmlhttp.responseText); // On boucle sur les données de la requête "Pays" Object.entries(donnees.pays).forEach(country => { var Nation0 = country[1].Nation; var OptionPays = new Option(Nation0,Nation0); listepays.options[listepays.options.length] = OptionPays; }) } } } var Urlfichier = ".............db/ListePays.php"; xmlhttp.open("GET", Urlfichier); xmlhttp.send(null); } Le même code crée donc les options dans la liste déroulante à partir de ma requête SQL (exécutée dans ListePays.php) dans la page simple mais ne les crée pas dans la page OpenElement. Je recherche donc une petite aide pour tenter de résoudre ce petit problème. Avec tous mes remerciements Cordialement Jmd
|
|
![]() |
|
Hobby001 ![]() Admin Group ![]() ![]() Modérateur Depuis le: 14 Feb 2015 Pays: Canada, Québec Status: Inactif Points: 6402 |
![]() ![]() ![]() ![]() ![]() |
Merci du retour
|
|
![]() |
|
Nandjm ![]() Newbie ![]() Depuis le: 03 Sep 2020 Pays: France Status: Inactif Points: 22 |
![]() ![]() ![]() ![]() ![]() |
Bonjour Le problème est bien situé sur la ligne : listepays.options[listepays.options.length] = OptionPays; La donnée est bien présente avec la "value" et l'Id mais je n'arrive pas à l'ajouter dans la liste déroulante. Quand je commente la ligne, je retrouve bien les données "pays". Jmd
|
|
![]() |
|
Hobby001 ![]() Admin Group ![]() ![]() Modérateur Depuis le: 14 Feb 2015 Pays: Canada, Québec Status: Inactif Points: 6402 |
![]() ![]() ![]() ![]() ![]() |
Êtes-vous bien certain que ceci: '*[id^="WE7572973d2e"]' fonctionne?
|
|
![]() |
|
Nandjm ![]() Newbie ![]() Depuis le: 03 Sep 2020 Pays: France Status: Inactif Points: 22 |
![]() ![]() ![]() ![]() ![]() |
Oui, j'ai vérifié l'Id de la liste déroulante et c'est le bon. J'y ai ajouté manuellement une première option et si j'en ajoute une autre, on est bien dans le cas d'une liste déroulante. Voici les lignes de code créées par OE. <div id="WE7572973d2e" class="BaseDiv RWidth OEWEListBoxV2 OESK_WEListBox2_Default OECenterAH" style="z-index:37"> <div class="OESZ OESZ_DivContent OESZG_WE7572973d2e"> <select name="WE7572973d2e" class="OESZ OESZ_ListBox OESZG_WE7572973d2e OEDynTag0"> <option value="1" class="OESZ OESZ_Options OESZG_WE7572973d2e">Etats-Unis</option> </select> </div> </div> J'ai changé la ligne en : listepays.innerHTML += '<option value = "'+ Nation0 +'">' + Nation0 + '</option>'; puis en <option value= "'+ Nation0 + '" class="OESZ OESZ_Options OESZG_WE18a6e3b276" selected="selected">Nation0</option> Les options s'affichent bien à la suite de la première mais sans fond dans une listbox pour la première modification. Pour la seconde, les options s'affichent également bien à la suite mais dans une listbox à fond blanc.
|
|
![]() |
|
Hobby001 ![]() Admin Group ![]() ![]() Modérateur Depuis le: 14 Feb 2015 Pays: Canada, Québec Status: Inactif Points: 6402 |
![]() ![]() ![]() ![]() ![]() |
Si je comprends votre situation, votre code fonctionne hors OE mais pas dans OE. Donc la syntaxe de OE ne convient pas. Mettez le code HTML de la liste déroulante qui fonctionne dans un bloc de code visuel sur la page OE. |
|
![]() |
|
Nandjm ![]() Newbie ![]() Depuis le: 03 Sep 2020 Pays: France Status: Inactif Points: 22 |
![]() ![]() ![]() ![]() ![]() |
Bonjour Merci pour le proposition. Entre temps, je me suis réorienté vers la méthode que j'avais utilisée il y a quelques semaines : reprendre le fichier créé par OE dans un autre éditeur et le modifier avec les éléments qui fonctionnent hors OE. Je commente le div qui me pose problème et je glisse mes lignes de code en lieu et place de celui créé grâce à OE et le tour est joué. Par contre, je ne peux plus reprendre le fichier sous OE sous peine de voir annuler tout mon travail. Je garde donc en copie les deux fichiers d'origine : la page créée sous OE et la page créée hors OE, au cas où. OE est un formidable outil mais, à mon sens, pas assez souple pour travailler avec des requêtes dans les bases de données, ou, et c'est une autre hypothèse, je n'ai pas totalement exploré ses possibilités pour la gestion de bases de données. Je ne sais pas si c'est possible mais il pourrait intéressant d'avoir la possibilité d'inclure du code dans à l'intérieur de n'importe quel ligne de code, comme je l'ai fait "par bricolage". Cordialement Jmd |
|
![]() |
|
Hobby001 ![]() Admin Group ![]() ![]() Modérateur Depuis le: 14 Feb 2015 Pays: Canada, Québec Status: Inactif Points: 6402 |
![]() ![]() ![]() ![]() ![]() |
Plus un logiciel vous tiens la main moins il est fait pour ce type de spécificités.
C'est pourquoi le bloc de visuel existe. Il vous permet d'ajouter du code dans un endroit précis d'une page et de s'assurer que OE en tient compte
|
|
![]() |
Répondre ![]() |
|
Tweet
|
Aller au Forum | Permissions du forum ![]() Vous ne pouvez pas écrire un nouveau Sujet Vous ne pouvez pas répondre aux Sujets Vous ne pouvez pas effacer vos messages Vous ne pouvez pas éditer vos messages Vous ne pouvez pas créer des sondages Vous ne pouvez pas voter dans les sondages |