IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Charger fonctions selon contenu d'un array


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2018
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 184
    Par défaut Charger fonctions selon contenu d'un array
    Bonjour,

    J'utilise la sidebar V2 de Leaflet Leaflet Sidebar V2 et en fonction de mes clients, je leur donne accès ou non à certaines fonctions, donc à certains onglets ou non.

    Dans mon application j'ai une variable de session qui redescend un array avec les id des modules autorisés

    Côté Javascript, j'ai testé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    let modules = ['1', '2'];
     
    if(modules.includes('1'){
               sidebar.addPanel({
                    id: 'module_1',
                    tab: '<i class="fa-solid fa-envelope"></i>',
                    title:'Module 1'
                  });
     
                  $('#module_1').html(`
                    <h4 class="leaflet-sidebar-header">Module 1</h4>
                    <div id="info_module1" class="sidebar-panel"></div>
                  `)
    }
    if(modules.includes('2'){
               sidebar.addPanel({
                    id: 'module_2',
                    tab: '<i class="fa-solid fa-envelope"></i>',
                    title:'Module 2'
                  });
     
                  $('#module_2').html(`
                    <h4 class="leaflet-sidebar-header">Module 2</h4>
                    <div id="info_module2" class="sidebar-panel"></div>
                  `)
    }
    Le problème est que ce code s'arrête à partir du moment où il trouve une correspondance. Donc mon premier onglet sera affiché correctement, mais pas le deuxième.

    J'imagine qu'il faut une boucle, mais je bloque totalement (une boucle while ?)

    Qu'en pensez vous ?

    Merci pour vos retours,

    Sylvain

  2. #2
    Membre chevronné Avatar de ASCIIDEFOND
    Homme Profil pro
    Autodidacte
    Inscrit en
    Novembre 2002
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Autodidacte

    Informations forums :
    Inscription : Novembre 2002
    Messages : 235
    Par défaut
    Salut sylvain257,

    Il manque la parenthèse fermante sur les conditions if

  3. #3
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2018
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 184
    Par défaut
    C'est une copie de code malheureuse. Si j'avais une parenthèse fermante, VSCode me l'aurait notifié.

    Donc dans le cas présenté, si dans l'array modules, si le 1 est présent, il peut afficher le second. Mais si le 1 n'est pas présent, et que seul le 2 y est, ça ne fonctionne pas.

    Pour info, mes onglets (tabs) sont générés de la façon suivante ;

    MAJ 29/9 11h30 : La solution (pour le moment je n'y vois de problème):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
      if(sess_modules.includes('2')){
     
        sidebar.addPanel({
          id: "module_2",
          tab: '<i class="fa-solid fa-square"></i>',
          title:'Module 2'
        });
     
     
        document.getElementById("module_2").innerHTML = 
            `<h4 class="leaflet-sidebar-header">Module 2</h4>
            <div id="info_2" class="sidebar-panel"></div>
            `
     
        //+ les fonctions...
     
      }
    Merci pour vos commentaires et votre aide

    Sylvain

  4. #4
    Membre chevronné Avatar de ASCIIDEFOND
    Homme Profil pro
    Autodidacte
    Inscrit en
    Novembre 2002
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Autodidacte

    Informations forums :
    Inscription : Novembre 2002
    Messages : 235
    Par défaut
    Et comme ça ?

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <body>
        <div id="module_1"></div>
        <div id="module_2"></div>
     
        <script>
            let sess_modules = ['1','2'];
            for (let module of sess_modules) {
                if (module) {
                    document.getElementById(`module_${module}`).innerHTML = `<h4 class="leaflet-sidebar-header">Module ${module}</h4><div id="info_${module}" class="sidebar-panel"></div>`
                }
            }
        </script>
    </body>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/06/2021, 19h07
  2. [VBA]comptage de lignes en fonction du contenu des cellules
    Par calimero91 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 22/12/2005, 11h38
  3. Réponses: 1
    Dernier message: 28/09/2005, 23h37
  4. [vb excel]Probleme affichage de contenu d'une array
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/09/2005, 16h01
  5. [DOM] Lecture de XML et décision en fonction du contenu
    Par samios dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 14/10/2004, 16h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo