Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/02/2011, 20h32   #1
Invité de passage
 
sandrine
Inscription : février 2011
Messages : 11
Détails du profil
Informations personnelles :
Nom : sandrine

Informations forums :
Inscription : février 2011
Messages : 11
Points : 1
Points : 1
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 :
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 !
labobinette est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2011, 20h47   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 465
Points : 8 465
oui est est définie $contenu ???
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2011, 21h15   #3
Invité de passage
 
sandrine
Inscription : février 2011
Messages : 11
Détails du profil
Informations personnelles :
Nom : sandrine

Informations forums :
Inscription : février 2011
Messages : 11
Points : 1
Points : 1
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.
labobinette est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2011, 21h24   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 465
Points : 8 465
augmente ton niveau d'erreur dans php (php.ini) :
Code :
1
2
error_reporting = E_ALL | E_STRICT
display_errors = On
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2011, 22h13   #5
Invité de passage
 
sandrine
Inscription : février 2011
Messages : 11
Détails du profil
Informations personnelles :
Nom : sandrine

Informations forums :
Inscription : février 2011
Messages : 11
Points : 1
Points : 1
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 :
1
2
3
 
function constructMenu($contenu)
{}
et ça :
Code :
1
2
 
echo constructMenu("home")
le menu "home" (qui correspond bien à une des valeurs de la table) est bien stylé en "selected".
labobinette est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2011, 22h40   #6
Invité de passage
 
sandrine
Inscription : février 2011
Messages : 11
Détails du profil
Informations personnelles :
Nom : sandrine

Informations forums :
Inscription : février 2011
Messages : 11
Points : 1
Points : 1
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 :
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 !
labobinette est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h26.


 
 
 
 
Partenaires

Hébergement Web