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

Langage PHP Discussion :

Aspect bouton menu selon différentes sources


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 52
    Points : 22
    Points
    22
    Par défaut Aspect bouton menu selon différentes sources
    Bonjour,

    Suite à une évolution que je veux porter à mon site, j'ai un petit problème avec le menu.
    Voici ce qui est actuellement, et qui fonctionne, ma page index est :

    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
    $pages = array(
    'accueil'=>'accueil.htm',
    'humanitaire'=>'humanitaire.htm', ...........
    );
     
    if(isset($_GET['page']) && array_key_exists($_GET['page'],$pages))
    { 
    $inc = $pages[$_GET['page']];
    $active = $_GET['page'];
    }
    else
    {
    $inc = 'accueil.htm';
    $active = 'accueil';
    }
     
    echo '<div class="menu"><ul>
    <a class="bouton'.($active == 'accueil' ? 'active' : '').'" href="index.php?page=accueil.htm">Accueil</a><p>
    <a class="bouton'.($active == 'humanitaire' ? 'active' : '').'" ...............
    echo '</div>'; 
    echo '<div class="frame">'; 
    include($inc);
    echo '</div>';
    Donc là, j'affiche un menu, dont les boutons prennent l'aspect "class=bouton" quand on clique dessus.

    L'évolution est que maintenant, j'affiche aussi des éléments du menu issus d'une base de donnée :

    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
    $select = 'SELECT * FROM menu'; 
    $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() ); 
     
    $pages = array(
    'accueil'=>'accueil.htm',
    '$row[nom]'=>'$row[texte]',
    'humanitaire'=>'humanitaire.htm', .........
    );
     
    if(isset($_GET['page']) && array_key_exists($_GET['page'],$pages))
    { 
    $inc = $pages[$_GET['page']];
    $active = $_GET['page'];
    }
    else
    {
    $inc = 'accueil.htm';
    $active = 'accueil';
    }
     
    echo '<div class="menu"><ul>
    <a class="bouton'.($active == 'accueil' ? 'active' : '').'" href="index.php?page=accueil.htm">Accueil</a><p>
    <a class="bouton'.($active == 'humanitaire' ? 'active' : '').'" href="index.php?page=humanitaire.htm">Humanitaire</a><p>';
    while ($row = mysql_fetch_array($result))
    {
    echo '<a class="bouton'.($active == $row['nom'] ? 'active' : '').'" href="index.php?nom='.$row['nom'].' & texte='.$row['texte'].'">'.$row['nom'].'</a><p>';
    }
    echo '<a class="bouton'.($active == 'presentation' ? 'active' : '').'" ...............
    echo '</div>'; 
    echo '<div class="frame">'; 
    if(isset($_GET['texte']))
    {
    echo $_GET['texte']; 
    }
    else
    {
    include($inc);
    }
    echo '</div>';
    Mais dans ce dernier cas, si je clique sur un élément du menu issu de la base de donnée, je n'arrive pas à ce que le bouton prenne l'aspect "class=bouton".

    Merci d'avance pour votre aide.

  2. #2
    Expert confirmé
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Points : 4 853
    Points
    4 853
    Par défaut
    Salut,
    peux tu mieux expliciter ? et où est définie la variable $row ?
    Développeur | Zend Certified Engineer

    Étapes Pour mieux se servir du forum:
    1. Commencez par lire les cours et tutoriels ;
    2. Faites une recherche;
    3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

    Nix>_Rien n'est plus pratique que la théorie

  3. #3
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    class="bouton'.($active == 'accueil' ? 'active' : '').'"
    Défini une classe css

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    .boutonactive {
    display:block;
    font-size:20em;
    color:red;
    }
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  4. #4
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    rien a voir mais qu'est-ce qu'il se passe si tu fais un get sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://url?page=$row[texte]
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 52
    Points : 22
    Points
    22
    Par défaut
    J'affiche bien le texte, donc le test dec faire un get sur "http://url?page=$row[texte]" n'est pas la solution.

    Si j'affiche les pages définis dans le tableau array :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $pages = array(
    'accueil'=>'accueil.htm',
    '$row[nom]'=>'$row[texte]',
    le bouton menu correspondant affiche les pages coprrespondantes et prend correctement la "class active" désirée :

    <a class="bouton'.($active == 'accueil' ? 'active' : '').'" href="index.php?page=accueil.htm">Accueil</a><p>
    Si j'affiche les pages définis issues de la base de donnée :

    $pages = array(
    'accueil'=>'accueil.htm',
    '$row[nom]'=>'$row[texte]',
    le bouton menu correspondant affiche les pages coprrespondantes mais ne prend pas la "class active" désirée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a class="bouton'.($active == $row['nom'] ? 'active' : '').'" href="index.php?nom='.$row['nom'].' & texte='.$row['texte'].'">'.$row['nom'].'</a><p>';
    Je suppose que cela vient des tests en début de script, mais je ne sais pas comment les écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if(isset($_GET['page']) && array_key_exists($_GET['page'],$pages))
    {	
     $inc = $pages[$_GET['page']];
     $active = $_GET['page'];
    }
    else
    {
     $inc = 'accueil.htm';
     $active = 'accueil';
    }
    Rajouter un test sur $row[nom] ou $row[texte], mais comment .... ???

    Je m'y perds .....

Discussions similaires

  1. [HTML] Pb bouton menu actif (a:active)
    Par hkiller dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 01/11/2007, 12h04
  2. Générer un menu selon un répertoire
    Par stailer dans le forum Langage
    Réponses: 7
    Dernier message: 24/11/2006, 10h04
  3. Boutons menu en flash
    Par despe59 dans le forum Flash
    Réponses: 11
    Dernier message: 22/06/2006, 13h18
  4. Menu vertical différent sous FF et IE
    Par Myogtha dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 06/12/2005, 00h29
  5. [FLASH MX] Bouton avec états différents
    Par Chucky69 dans le forum Flash
    Réponses: 5
    Dernier message: 24/08/2004, 12h01

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