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 :

Mettre un attribut à une liste dynamique [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2010
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 342
    Par défaut Mettre un attribut à une liste dynamique
    J'avais besoins d'un script de création d'un arbre à partir des données venant d'une BD. Je suis tombé sur le script suivant (voir aussi en ligne) :

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    query = "SELECT identiifantMenu, identifiantParent, nomMenu FROM table_menu ORDER BY val1 ASC";
    $result = mysql_query($query);
    $nombre_enreg=mysql_num_rows($result);
     
    $categories = array();
     
    while($row = mysql_fetch_array($result)) {
    	$categories[] = array(
    	'parent_id' => $row['identifiantParent'],
    	'categorie_id' => $row['identiifantMenu'],
    	'nom_categorie' => $row['nomMenu ']
    	);
    }
     
    function afficher_menu($parent, $niveau, $array) {
     
    $html = "";
    $niveau_precedent = 0;
     
    if (!$niveau && !$niveau_precedent) $html .= "\n<ul>\n";
     
    foreach ($array AS $noeud) {
     
    	if ($parent == $noeud['parent_id']) {
     
    	if ($niveau_precedent < $niveau) {$html .= "\n<ul>\n"; $ident=$noeud['parent_id'];}
     
    	$html .= "<li>" . $noeud['nom_categorie'];
     
    	$niveau_precedent = $niveau;
     
    	$html .= afficher_menu($noeud['categorie_id'], ($niveau + 1), $array);
     
    	}
    }
     
    if (($niveau_precedent == $niveau) && ($niveau_precedent != 0)) $html .= "</ul>\n</li>\n";
    else if ($niveau_precedent == $niveau) $html .= "</ul>\n";
    else $html .= "</li>\n";
     
    return $html;
     
    }
    Ce script m'affiche parfaitement l'arbre sous forme de <ul> et <li> mais j'ai un problème, c'est que lorsqu'on clique sur un menu, qu'il me renvoi l'identifiant du menu cliqué.

    Puisque je ne dois pas afficher les identifiant, j'ai donc pensé que je peux à chaque fois je je crée un <li> ou un <ul>, ajouter l'attribut id qui sera égal à l'identifiant du menu <li id="identifiantMenu">. Mais selon ce script qui m'a été fourni, c'est vrai que je l'ai intégré et il marche, mais je ne le le comprend pas à 100% et je ne sais pas comment le faire, quelqu'un peut-il m'aider ?

    Merci

  2. #2
    Membre éclairé
    Inscrit en
    Avril 2010
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 342
    Par défaut
    C'est résolu, je récupérer l'identifiant comme ceci $ident=$noeud['categorie_id']; et je l'ajoute comme attribut des <li> créés, comme ceci <li id='$ident' >

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

Discussions similaires

  1. Charger une liste dynamiquement avec AJAX
    Par macra dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 20/10/2006, 21h39
  2. [PHP/MySql]traitement d'une liste dynamique
    Par ben_popcorn dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 29/09/2006, 12h51
  3. afficher les contenu d'une liste dynamiquement
    Par mzt.insat dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/04/2006, 18h02
  4. [Librairie] Mettre en page une liste avec des puces
    Par karibouxe dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 27/03/2006, 17h53
  5. Réponses: 1
    Dernier message: 16/01/2006, 17h36

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