8792 sujets

Développement web côté serveur, CMS

Bonjour,
Je me mets tout juste à php et je rencontre mon premier problème :
Je voudrais afficher/masquer les sous menus de mon menu déroulant et à chaque fois changer le style CSS du titre activé. J'ai tenté un includephp de mon menu et un code javascript+css (comme expliqué dans le tuto d'alsacréation) pour afficher/masquer le menu souhaité. Mais lorsque je clique sur mon lien, la page entière se recharge et ma variable est réinitialisée. Du coup le script ne fonctionne pas. Vous voyez ce que je veux dire ?
Donc, ma question est : est-il possible d'utiliser un incudephp uniquement pour charger le contenu des pages et modifier en mm temps l'aspect de mon menu afin qu'il reflète l'étape de navigation ou je suis ? (parce que si il faut que je fasse un menux.php différent pour chaque état visuel de mon menu, ça sert plus à rien de faire des include)
Merci d'avance pour votre aide
Modifié par SaluCseb (29 Sep 2006 - 10:24)
Administrateur
Bonjour,

tu peux donner une certaine valeur à une variable qui va déterminer quelle page est la page active.
Ensuite include() et dans cet include, l'élément de menu marqué comme actif sera celui correspondant à la valeur de la variable.
Pour le comment, euh avec des if comme dans le lien de l'élément de FAQ? Il doit exister une manière plus sioux avec des indices de tableau tous vides sauf celui actif Smiley confused

Je propose comme variante aux if (une bonne idée j'en sais rien Smiley ravi )
$tab['accueil'] = ' id="actif"';
dans la page accueil.php et l'include affiche systématiquement $tab['accueil'], $tab['toto'], $tab['blog'], etc les autres sont égaux à "" (chaîne vide) donc rien n'est affiché.
Modifié par Felipe (26 Sep 2006 - 23:11)
Merci Felipe,
Pourrais-tu m'expliquer un peu plus en détail ta solution perso ? (à des fins pédagogiques et peut être correspondra-t-elle finalement mieux à mes besoins)
En attendant, je vais appliquer la première qui pour le moment me semble suffisante.
Administrateur
Partout où il y a un
if($var=="valeur1") echo "machinchose1";

tu peux aussi bien mettre
echo $var['valeur1'];

sachant que $var['valeur1'] contient la chaîne à afficher (ça doit être fait avant l'include) alors que $var['valeur2'] ou $var['valeur5'] n'ayant aucune valeur seront des chaînes vides ...

Mais en fait, ce n'est pertinent que pour des if, pas pour des conditions if-else comme dans le lien de marantz.com
Les commentaires de ce billet apportent d'autres solutions plus générales j'ai l'impression et puis même optimiser ça va faire gagner moins d'1/1000ème de seconde: pas de quoi s'embêter Smiley lol
OK compris !
Je crois que des conditions if-else seront nécessaires dans mon cas.
Merci beaucoup pour ton aide !