BullGuard Antivirus Sale - 60% Off with openElement !
Accueil Forum Accueil Forum >

openElement

> OE dynamique - bases de données etc.
  Nouveaux messages Nouveaux messages Fil RSS  - Ajouter une option dans un sélect
  FAQ FAQ  Rechercher dans le Forum   Inscription Inscription  Connexion Connexion

Ajouter une option dans un sélect

 Répondre Répondre
Auteur
Message
Nandjm allez vers le bas
Newbie
Newbie


Depuis le: 03 Sep 2020
Pays: France
Status: Inactif
Points: 22
Options des messages Options des messages   Thanks (0) Thanks(0)   Citer Nandjm Citer  RépondreRéponse Lien Direct à ce Post Sujet: Ajouter une option dans un sélect
    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
Haut de la page
Hobby001 allez vers le bas
Admin Group
Admin Group
Avatar
Modérateur

Depuis le: 14 Feb 2015
Pays: Canada, Québec
Status: Inactif
Points: 6508
Options des messages Options des messages   Thanks (0) Thanks(0)   Citer Hobby001 Citer  RépondreRéponse Lien Direct à ce Post Envoyé : 27 Avr 2022 à 15:26
Merci du retour
Haut de la page
Nandjm allez vers le bas
Newbie
Newbie


Depuis le: 03 Sep 2020
Pays: France
Status: Inactif
Points: 22
Options des messages Options des messages   Thanks (0) Thanks(0)   Citer Nandjm Citer  RépondreRéponse Lien Direct à ce Post Envoyé : 27 Avr 2022 à 21:15
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
Haut de la page
Hobby001 allez vers le bas
Admin Group
Admin Group
Avatar
Modérateur

Depuis le: 14 Feb 2015
Pays: Canada, Québec
Status: Inactif
Points: 6508
Options des messages Options des messages   Thanks (0) Thanks(0)   Citer Hobby001 Citer  RépondreRéponse Lien Direct à ce Post Envoyé : 28 Avr 2022 à 01:20
Êtes-vous bien certain que ceci: '*[id^="WE7572973d2e"]' fonctionne?
Haut de la page
Nandjm allez vers le bas
Newbie
Newbie


Depuis le: 03 Sep 2020
Pays: France
Status: Inactif
Points: 22
Options des messages Options des messages   Thanks (0) Thanks(0)   Citer Nandjm Citer  RépondreRéponse Lien Direct à ce Post Envoyé : 28 Avr 2022 à 07:54
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.
Haut de la page
Hobby001 allez vers le bas
Admin Group
Admin Group
Avatar
Modérateur

Depuis le: 14 Feb 2015
Pays: Canada, Québec
Status: Inactif
Points: 6508
Options des messages Options des messages   Thanks (0) Thanks(0)   Citer Hobby001 Citer  RépondreRéponse Lien Direct à ce Post Envoyé : 28 Avr 2022 à 11:52
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.


Haut de la page
Nandjm allez vers le bas
Newbie
Newbie


Depuis le: 03 Sep 2020
Pays: France
Status: Inactif
Points: 22
Options des messages Options des messages   Thanks (0) Thanks(0)   Citer Nandjm Citer  RépondreRéponse Lien Direct à ce Post Envoyé : 29 Avr 2022 à 09:07
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

Haut de la page
Hobby001 allez vers le bas
Admin Group
Admin Group
Avatar
Modérateur

Depuis le: 14 Feb 2015
Pays: Canada, Québec
Status: Inactif
Points: 6508
Options des messages Options des messages   Thanks (0) Thanks(0)   Citer Hobby001 Citer  RépondreRéponse Lien Direct à ce Post Envoyé : 29 Avr 2022 à 11:06
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
Haut de la page
 Répondre Répondre
  Partagez ce sujet   

Aller au Forum Permissions du forum allez vers le bas

Forum Software by Web Wiz Forums® version 12.04
Copyright ©2001-2021 Web Wiz Ltd.

Cette page a été affichée en 0.078 secondes.