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

PHP & Base de données Discussion :

[Conception] Menu déroulant dynamique et administrable


Sujet :

PHP & Base de données

  1. #1
    Membre averti Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Points : 377
    Points
    377
    Par défaut [Conception] Menu déroulant dynamique et administrable
    Bonjour,
    Je cherche a faire un menu deroulant dynamique auto administrable.

    Par exemple :
    Mes menus de tete ont un code à 2 chiffres : 10 - 20 -30 ...
    Mes sous menus du menu 1 seraient à 4 chiffres : 1010-1020-1030....
    Mes sous menus du menu 2 seraient pareils : 2010-2020-2030....

    L'admin en rentrant des nouveaux menus leur donne 2 chiffres si c'est pour un menu et 4 chiffres pour un sous menu.

    Mon soucis c'est comment faire pour que mon prog sache reconaitre les menus des sous menus.
    Si quelqu'un a une idée, merci

  2. #2
    Membre éclairé Avatar de nako
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2003
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2003
    Messages : 577
    Points : 663
    Points
    663
    Par défaut
    Citation Envoyé par guy2004
    Mon soucis c'est comment faire pour que mon prog sache reconaitre les menus des sous menus.
    Salut, je vais peut-être dire quelque chose de stupide, mais si ton "code" est plus petit que 100, alors c'est un menu, si il est compris entre 1000 et 9999 alors c'est un sous-menu.
    Ca fonctionne ou pas ?

    Sinon, tu n'auras que 2 niveaux de sous-menu ?
    Ca fait un peu bricolage ton histoire de "code", enfin ça dépend qui va faire l'administration (ajout, modification de menu), s'il faudra y toucher régulièrement ou si ils sont fixés une fois pour toutes, etc.

    Où vas-tu stocker tes "codes" ? dans un fichier ? dans une base de données ?

    Bonne continuation.
    a+

  3. #3
    Membre averti Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Points : 377
    Points
    377
    Par défaut
    Mes menus sont à 2 chiffres :10-20....je ne sais pas combien il devra y en avoir, il devront pouvoir etre rajoutés.

    Mes sous menus sont à 4 chiffres :1010-2010-3010...je ne sais pas combien il ydevra en avoir, ils devront pouvoir etre rajoutés.

    Mes sous sous-menus sont à 6 chiffres :101010-201010.... et encore pareil.

    Le tout dans une base mysql sous la forme :
    id- primary
    code : 1010 par exemple
    libel : "mon sous menu"

    Mon seul soucis c'est que je ne sais pas à l'avance les menu et sous menus et que cela doit pouvoir etre ajouté comme ceci par xemple :

    code :101015
    libel:"mon sous sous-menu 1 du sous menu1"

    et j'ai une fonction qui recupere le niveau du menus ou sous menus :1-2-3...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function niveau_categorie($code) {
        $longueur = strlen($code);
        $niveau = intval($longueur / 2);
        return($niveau);
      }
    }

  4. #4
    Membre éclairé Avatar de nako
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2003
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2003
    Messages : 577
    Points : 663
    Points
    663
    Par défaut
    Salut, en fait, je comprend pas quelle est ta question.
    Tu t'es fabriqué un système que tu as l'air de bien maitriser.
    Ta fonction te rend bien ce que tu veux, non ?
    Que n'arrives-tu pas à faire ?
    a+

  5. #5
    Membre averti Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Points : 377
    Points
    377
    Par défaut
    Ce que je cherche a faire c'est ca :
    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
     
    <div id="nav">
    <ul class="level1">
     <li class="submenu"><a href="">Menu niveau 1</a>
      <ul class="level2">
       <li><a href="">Menu niveau 2</a></li>
       <li><a href="">Menu niveau 2</a></li>
       <li><a href="">Menu niveau 2</a></li>
       <li><a href="">Menu niveau 2</a></li>
      </ul>
     </li>
     
     <li class="submenu"><a href="">Menu niveau 1</a>
      <ul class="level2">
       <li class="submenu"><a href="">Menu niveau 2</a>
        <ul class="level3">
         <li><a href="">Menu niveau 3</a></li>
         <li><a href="">Menu niveau 3</a></li>
         <li><a href="">Menu niveau 3</a></li>
         <li><a href="">Menu niveau 3</a></li>
        </ul>
       </li>
    </ul>
    </div>
    et pour le moment je fais ca :

    1. Recuperation de mes menus et sous menus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $tb = $galerie->tableau_categories();
      while (list($code, $categorie_infos) = each($tb)) {
     
    // recuperation du niveau : 1-2 ou 3
    $nom_style .= $galerie->niveau_categorie($code);
     
    // affichage des liens
    $tb_blocs["$code_bloc"] .= '<a href="' . $url
         . '" class="' . $nom_style . '"><img src="'.$nom_logo.'">';
       $tb_blocs["$code_bloc"] .= $categorie_infos['libel'];
       $tb_blocs["$code_bloc"] .= "</a><br>\n";
      }
    et là j'ai donc des liens les uns dessous les autres aevc un nom de style qui correspond a son niveau et je les indente pour marquer les differences de niveau.
    Ce que j'aimerai c'est faire pareil en menu horizontal déroulant

  6. #6
    Membre éclairé Avatar de nako
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2003
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2003
    Messages : 577
    Points : 663
    Points
    663
    Par défaut
    Yo ! tu sais que tu nous aides pas beaucoup là !
    Je sais pas les autres, mais moi, je suis pas devin.
    Je ne sais pas ce qu'il y a dans ton tableau $tb et dans le tableau $categorie_infos.

    L'idée, c'est faire une double boucle while (ou une fonction récursive si plus de 2 niveaux de menus) du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Pour chaque menu faire
        afficher les infos du menu
        afficher "<ul>";
        Pour chaque sous-menu appartenant à ce menu faire
            afficher "<li>";
            afficher les infos du sous-menu
            afficher "</li>";
        Fin pour
        afficher "</ul>";
    Fin pour
    Voilà en gros le principe.

  7. #7
    Membre averti Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Points : 377
    Points
    377
    Par défaut
    T'as tout compris ! C'est cette fonction que je n'arrive pas a faire en fait.

    $tb contient le tableau des categories et $categorie_infos ['code'] contient le code, $categorie_infos['libel'] le libellé du menus.

  8. #8
    Membre éclairé Avatar de nako
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2003
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2003
    Messages : 577
    Points : 663
    Points
    663
    Par défaut
    Génial ! ça veut dire que j'accède bientôt au rang de devin

    Bon alors qu'est-ce qu'on a ?
    - un tableau "en vrac" de tous les éléments menus et sous-menus

    Qu'est-ce qu'on veut ?
    - parcourir (le pour tout de l'algo) un ensemble de catégorie de même niveau.

    Que manque-t-il ?
    - un fonction qui donne ce fameux sous-tableau en fonction du tableau "global" et d'un niveau.

    Je te donne la signature de la fonction, et je te laisse faire l'implémentation ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    /**
     * Retourne un tableau de sous catégories correspondant au niveau $niveau
     *
     * @param array $tableau_categorie le tableau "en vrac" des categories
     * @param int $niveau le niveau des catégories que l'on souhaite récupérer
     * @return array un sous-tableau de $tableau_categorie correspondant au niveau $niveau
     */
    function tableau_sous_categorie($tableau_categories, $niveau);
    Bon courage !
    a+

  9. #9
    Membre averti Avatar de guy2004
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    805
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 805
    Points : 377
    Points
    377
    Par défaut
    je vais voir ca plutard, je te tiens au courant de l'evolution, merci

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 22/03/2007, 08h36
  2. [MySQL] menu déroulant dynamique
    Par heteroclite dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/10/2006, 20h16
  3. menu déroulant dynamique
    Par jojo971 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/06/2006, 14h43
  4. [Conception] Menu arborescent dynamique
    Par Azanael dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 12/03/2006, 14h41

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