variable de...

Répondre
Keika
le 02/08/2006 à 15:34
Keika
Salut

toujours le meme probleme de sopus menu (pas grave si vous ne vous en souvenez pas.)

alors voila, je me demandais comment envoyer via un lien une variable (certainement de session) et la garder active tant que l'utilisateur n'a pas cliquer sur un autre lien contenant lui meme une variable de session...

Le but étant que pendant que cette variable de session est active, des sous menus apparaissent et que l'utilisateur puisse surfer dessus sans les voir disparaitre au premier clic sur ces sous menus.

Exemple:

-je clique sur "Galeries"
-ca montre des sous menus "galerie 1" - "galerie 2" - "galerie 3"(qui ne s'affichent que parceque la session "galerie" est active)
-je surfe sur ces 3 galeries tant que je n'ai pas cliquer sur un autre lien de menu genre "planning"


Merci de votre aide

K.
Le PHP --> C'est dur !
Rolland
le 02/08/2006 à 19:36
Rolland
smiley,
Pourquoi une varaiable de session ?
Tu peux passer cette variable par l'Url
Puis la récupérer pour afficher les sous-menus que tu veux.
Tu devrais y voir plus clair avec cet exemple simplifié :

<?php
echo '<dl>';
echo '<dt><a href="'.$_SERVER['PHP_SELF'].'?var_famille=1"';
echo 'title="Afficher les sous-menus">Galeries</a></dt>';
if(isset($_GET['var_famille']) && ($_GET['var_famille']==1)) {
echo '<dd><a href="'.$_SERVER['PHP_SELF'].'?var_famille=1&amp;var_sous_famille=1"';
echo 'title="Afficher sous-menu galerie 1">Sous menu galerie 1</a></dd>';
echo '<dd><a href="'.$_SERVER['PHP_SELF'].'?var_famille=1&amp;var_sous_famille=2"';
echo 'title="Afficher sous-menu galerie 2">Sous menu galerie 2</a></dd>';
}
echo '<dt><a href="'.$_SERVER['PHP_SELF'].'?var_famille=2"';
echo 'title="Afficher les sous-menus">Planings</a></dt>';
if(isset($_GET['var_famille']) && ($_GET['var_famille']==2)) {
echo '<dd><a href="'.$_SERVER['PHP_SELF'].'?var_famille=2&amp;var_sous_famille=1"';
echo 'title="Afficher sous-menu planing 1">Sous menu planing 1</a></dd>';
echo '<dd><a href="'.$_SERVER['PHP_SELF'].'?var_famille=2&amp;var_sous_famille=2"';
echo 'title="Afficher sous-menu planing 2">Sous menu planing 2</a></dd>';
}
echo '</dl>';
?>
.
Tant que tu auras var_famille dans ton url, les sous-menus de cette famille resteront ouverts.
3SI - Sea, Sex, Sun and Internet
i M@N
le 02/08/2006 à 19:38
i M@N
Hello !

Pas besoin de session, une variable dans l'url suffit.

Tu fais un truc style :
<?php

/*on récupère la valeur de page*/
if (isset($_GET["page"])) $page = $_GET["page"]; else $page="";

/*on affiche le lien vers la page*/
echo '<a href="./index.php?page=truc">truc</a>';

/*et si $page=truc on mets des liens vers truc1, truc2 etc ...*/
if ($page == "truc") {
echo '<a href="./index.php?page=truc1">truc1</a>';
echo '<a href="./index.php?page=truc2">truc2</a>';
}
/*et si $page=machin on mets des liens vers machin1, machin2 etc ...*/
echo '<a href="./index.php?page=machin">machin</a>';
if ($page == "machin") {
echo '<a href="./index.php?page=machin1">machin1</a>';
echo '<a href="./index.php?page=machin2">machin2</a>';
}
?>


C'est ultra basique, à base de if ... mieux vaut faire avec des switch. smiley

@+...
One Love, One Heart, One Unity.
Rolland
le 02/08/2006 à 21:37
Rolland
Salut I m@n,

Pour une fois que je peux en placer une ;o)

A la prochaine.
3SI - Sea, Sex, Sun and Internet
Keika
le 03/08/2006 à 00:40
Keika
salut

merci pour vos réponses. Celle de im@an étant plus clair j'ai décidé d'opter pour celle ci.

Cependant:

je n'arrive pas à faire fonctionner ce code.

mes url étant du type:
www.monsite.fr/?mespages

je n'arrive pas à adapter le script d'im@n pour mon affichage de page...

voyez vous comment faire ?
Le PHP --> C'est dur !
Keika
le 03/08/2006 à 00:54
Keika
bon alors, j'ai réussi à faire fonctionner le script (sans que ca affiche mes vraie pages mais bon, je vais résoudre ca aussi)

mais le probleme est que quand le clique sur un des liens qui apparait, forcément la valeur de $page change et donc les sous menus disparaissent.

comment faire en sorte pour que ca reste affiché ?
Le PHP --> C'est dur !
Rolland
le 03/08/2006 à 23:38
Rolland
Re Keika,

Tes sous-familles restent affichées tant que ta variable famille correspondante reste présente dans l'URL. Si elle n'y est plus, tes sous-familles se ferment.
Tu trouveras un exemple complet dans ce wall.
Il affiche la page index, les pages des 2 familles et les pages des 4 sous-familles.
T'as + qu'à ajouter des familles et sous-familles et à jouer avec le html et tes données pour remplir tes pages.
Tâches tout de même d'essayer de comprendre la méthode ou ça ne te servira pas à grand chose.
Pour le float et le clear, voir dans la rubrique css.
Regardes aussi dans les cours du côté des fonctions switch et include qui te permettront d'optimiser.

A peluche.
3SI - Sea, Sex, Sun and Internet
Keika
le 08/08/2006 à 03:27
Keika
Merci Rolland.

Effectivment j'ai compris ta méthode. Pour preuve je l'ai corrigée !

en local, lorsque je ne faisais que copier/coller ton code j'avais 5 fois:
undefined variable: var_famille on line....

parcequ'en fait tu vérifiais la valeur de var_famille via la variable $var_famille alors qu'il fallait remplacer par
<?php
&& $_GET['var_famille'] == 1 ou 2
?>


enfin je ne sais pas si je suis bien clair, mais voila le code modifié et tout bon. WALL

En tout cas merci. Je vais voir comment l'intégrer à mon code.

PS:
j'ai remarquer que ta page est considérée comme HTML transitionnal... j'espere que ce n'est pas à cause du script php ? parceque sinon faut absolument que je le modifie en STRICT...
Le PHP --> C'est dur !
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours