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 :

menu php construit via une bdd [PHP 5.0]


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 11
    Points : 5
    Points
    5
    Par défaut menu php construit via une bdd
    Bonjour à tous,

    Je viens solliciter votre aide.
    J'ai créé une liste (visant à faire un menu) en récupérant les données d'une table. Jusque là, ça va.
    Je souhaiterais appliquer un style particulier au menu selectionné (ici, la class css a appliquer est nommée : selected).
    Mais ça ne marche pas !
    J'ai bien dans l'idée qu'il y a un problème d'accès à ma variable $contenu mais je ne vois pas du tout comment le régler.
    Pourriez-vous m'aider ?
    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
    44
     
    <?php 
    	// inclusion des headers html: charge les css
    	include("themes/monTheme/fragments/htmlHeaders.php"); 
    	?>
    <?php 
     
    			function constructMenu(){
    				$laListe= "<ul class=\"tabBar\">\n";
     
    				// Page par défaut dans les menus
    				define("DEFAULTPAGE","menuPhpMysql.php");		
     
    				try  
    				{
    					$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    					$bdd = new PDO('mysql:host=localhost;dbname=sandrine', 'root', 'root', $pdo_options);
     
    					$reponse = $bdd->query('SELECT idRubriqueTuto FROM tutoRubrique');
    					while ($donnees = $reponse->fetch())
    						{ 
    						$laListe .= "<li";
    						if ($contenu == $donnees['idRubriqueTuto']){ 
    						$laListe .= " class=\"selected\"" ;}
    						$laListe .= ">";
    						$laListe .= "<a href=\"".DEFAULTPAGE."?contenu=".$donnees['idRubriqueTuto']."\">".$donnees['idRubriqueTuto']."</li>";
    						}
     
    					$laListe .= "</ul>";
    					return $laListe;
     
    					$reponse->closeCursor(); 
     
     
    				}
    				catch (Exception $e)
    				{
    						die('Erreur : ' . $e->getMessage()); 
    				}
    			}
     
    			echo constructMenu();
     
    ?>
    Par avance merci !

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    oui est est définie $contenu ???

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Je la passe par l'url (enfin je crois), quand on clique sur les liens du menu.
    Ce n'est pas suffisant, j'imagine (?)

    $contenu peut prendre comme valeur une des valeurs de la table,
    c'est la même valeur que le nom du lien de mon menu.

    C'est sûr que lorsqu'on entre dans la condition, elle n'a pas de valeur…
    Donc la condition ne peut pas être remplie…
    Mais si je lui donne une valeur par défaut elle reste bloquée là dessus. Je ne sais pas comment la mettre à jour à chaque clic sur un bouton du menu.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    augmente ton niveau d'erreur dans php (php.ini) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    error_reporting = E_ALL | E_STRICT
    display_errors = On

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    c'est fait !
    Il y avait quelques petites erreurs, que j'ai corrigées
    mais ça n'a pas résolut mon problème pour autant.

    Pour info, pour tester, quand je fais ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    function constructMenu($contenu)
    {}
    et ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo constructMenu("home")
    le menu "home" (qui correspond bien à une des valeurs de la table) est bien stylé en "selected".

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    J'ai trouvé !

    Il suffisait de rajouter $contenu = $_GET['contenu'];
    Je pensais avoir déjà testé ça sans succès mais il devait alors y avoir une erreur ailleurs.
    Le code complet pour ceux que ça intéresse :

    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
    44
     
    <?php 
     
    	$contenu = $_GET['contenu']; 
    	echo 'ma variable est '.$contenu; 
     
    	function constructMenu($contenu){
    		$laListe= "<ul class=\"tabBar\">\n";
     
    		// Page par défaut dans les menus
    		define("DEFAULTPAGE","menuPhpMysql.php");		
     
    		try  
    		{
     
    			$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    			$bdd = new PDO('mysql:host=localhost;dbname=sandrine', 'root', 'root', $pdo_options);
     
    			$reponse = $bdd->query('SELECT idRubriqueTuto FROM tutoRubrique');
    			while ($donnees = $reponse->fetch())
    				{ 
    				$laListe .= "<li";
    				if ($contenu == $donnees['idRubriqueTuto']){ 
    				$laListe .= " class=\"selected\"" ;}
    				$laListe .= ">";
    				$laListe .= "<a href=\"".DEFAULTPAGE."?contenu=".$donnees['idRubriqueTuto']."\">".$donnees['idRubriqueTuto']."</li>";
    				}
     
    			$laListe .= "</ul>";
    			return $laListe;
     
    			$reponse->closeCursor(); 
     
     
    		}
    		catch (Exception $e)
    		{
    				die('Erreur : ' . $e->getMessage()); 
    		}
    	}
     
    	echo constructMenu($contenu);
     
    ?>
    Merci stealth35 pour ton aide !

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

Discussions similaires

  1. [AJAX] actualiser une liste déroulante via une BDD
    Par Jimmy72_ dans le forum AJAX
    Réponses: 19
    Dernier message: 28/03/2011, 15h45
  2. Réponses: 2
    Dernier message: 01/09/2008, 17h07
  3. [MySQL] Code PhP pour afficher une BDD
    Par FSDonwload dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 27/04/2008, 00h15
  4. Réponses: 4
    Dernier message: 18/02/2007, 20h28
  5. [Conception] Création d'un Mailing List via une BDD
    Par Matmax dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 12/04/2006, 14h23

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