Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
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 04/11/2006, 13h06   #1
Membre du Club
 
Inscription : février 2005
Messages : 212
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 212
Points : 62
Points : 62
Par défaut Attributition variable sur clic d'un lien

Bonjour,

J'aimerai savoir si il est possible d'attribuer une valeur à une variable php en fonction du lien cliqué (en html).

En gros lorsque l'utilisateur clique sur le lien "Accueil", la variable concerné prend une certaine valeur.

Ceci dans le but de faire afficher des sous menu qui seront different en fonction de la valeur de la variable.

Est-ce possible ? Si oui avez vous une idée ?

J'espere être claire.

Merci
Sam 069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2006, 13h34   #2
Membre expérimenté
 
Avatar de jc_cornic
 
Inscription : octobre 2006
Messages : 624
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : octobre 2006
Messages : 624
Points : 588
Points : 588
Envoyer un message via MSN à jc_cornic
Salut, oui il est possible de faire ce que tu demande...

exemple, ton fichier s'appelle index.php, il est composé d'un sommaire (menu) à gauche et d'une zone au centre de la page...
Tu veux quand l'utilisateur click sur un item de ton menu, qu'il "ouvre" le menu avec un sous-menu (c ca???)

Si c ca, alors tu peux par exemple faire


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
 
<?php
 
if (isset($_GET['menuID']))
  $menuID=$_GET['menuID'];
else $menuID=-1;
 
//tu affiche ici ton code html de ta page
 
//puis ton menu fait avec des href
 
$idItemMenu = ... (la tu te débrouille pour associer a chaque item un id)
 
echo "<a href=\"./index.php?menuID=$idItemMenu\" > exemple d'item </a>";
// LE code précédent cette ligne rappelle la meme page mais avec l'ID de l'item séctionné en GET
 
...
 
switch ($menuID)
{
case -1: //pas d'ID en param donc tu fais rien
break;
case 0: // id=0 donc tu dévoile le sous menu de l'item 0
break;
...
default:
break;
}
?>
En espérant t'avoir aidé...

++
JC
jc_cornic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2006, 13h50   #3
Membre du Club
 
Inscription : février 2005
Messages : 212
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 212
Points : 62
Points : 62
C'est exactement ce queje veux faire.
Merci de ton aide.

J'ai donc essayé de me faire une page de test.
Mais j'ai un problème sur le deuxième lien car il y a quelque chose que je ne comprends pas.
Des que tu cre un lien dans le menu
Code :
1
2
3
 
//puis ton menu fait avec des href
 <a href="essai.php" id="1"> affiche sous menu accueil</a>
il faut aussi obligatoirement le crée ici
Code :
1
2
3
 
echo "<a href=\"./essai.php?menuID=$idItemMenu\">affiche sous menu accueil</a>";
// LE code précédent cette ligne rappelle la meme page mais avec l'ID de l'item séctionné en GET
pour rafraichir la page ?

Je pense que oui. Mais ca ne fonctionne pas correctement.

Merci de ton aide en tout cas.



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
 
<?php
 
if (isset($_GET['menuID']))
  $menuID=$_GET['menuID'];
else $menuID=-1;
?>
 
//tu affiche ici ton code html de ta page
 
//puis ton menu fait avec des href
 <a href="essai.php" id="1"> affiche sous menu accueil</a>
 
<? 
//(la tu te débrouille pour associer a chaque item un id)
$idItemMenu = 1 
 
echo "<a href=\"./essai.php?menuID=$idItemMenu\">affiche sous menu accueil</a>";
// LE code précédent cette ligne rappelle la meme page mais avec l'ID de l'item séctionné en GET
 
switch ($menuID)
{
case -1: //pas d'ID en param donc tu fais rien
break;
case 0: // id=0 donc tu dévoile le sous menu de l'item 0
case 1:
echo "essai affichage sous-menu";
break;
default:
break;
}
?>
Sam 069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2006, 14h12   #4
Membre expérimenté
 
Avatar de jc_cornic
 
Inscription : octobre 2006
Messages : 624
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : octobre 2006
Messages : 624
Points : 588
Points : 588
Envoyer un message via MSN à jc_cornic
En fait tu ne dois ecrire qu'une fois le href...

Je voulais faire court et simple, j'ai fait juste court

Je reprend avec un menu à deux items, et chaque item à 2 sous-items

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
 
<?php
 
$menu1 = array("menu1", "ss-menu1_1", "ss-menu1_2");
$menu2 = array("menu2", "ss-menu2_1", "ss-menu2_2");
$menu = array($menu1, 0, $menu2, 0); //0 veut dire menu non déploié
 
if (isset($_GET['idMenu']))
{
   $idMenu = $_GET['idMenu'];
   $index = 2*$idMenu + 1;
   $menu[index] = 1-$menu[index]; // On change ici la valeur du déploiement
}
else $idMenu=-1;
 
for ($i=0 ; $i<count(menu)/2 ; $i++) // pour chaque item principal
{
  echo "<a href=\"index.php?idMenu=$i\"> $menu[$i][0] </a>";
 
  if ($i == $idMenu) // C'est l'item sélectionné juste avant
  {
    // On va donc le déployer ou non ici
   $index = 2*$i + 1;
   if ($menu[$index] == 1) // il faut alors le déployer
   {
      for ($j=1 ; $j<count($menu[$i]) ; $j++)
      {
         echo "<br><a href=\"index.php\"> $menu[$i][$j] </a>";
      }
   }
  }
}
 
?>

C du a peu près, mais voilà le style que je te propose

++
JC
jc_cornic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/11/2006, 14h26   #5
Membre du Club
 
Inscription : février 2005
Messages : 212
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 212
Points : 62
Points : 62
J'avoue, pour le moment que je comprends pas grand chose.

Mais je vais travailler ta solution.
Je te remercie.
Sam 069 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 14h30.


 
 
 
 
Partenaires

Hébergement Web