Page 1 sur 2
mettre une variable dans un lien
Posté : 18 mars 2005, 11:16
par arno
Salut,
Mon problème est le suivant: je souhaite faire des liens renvoyant sur la même page mais en changeant la valeur de la variable pour pouvoir afficher tel ou tel partie de la page. La valeur de la variable ne se change pas! comment faire ?????????
Merci
Posté : 18 mars 2005, 11:18
par demipoulp
un petit bout de code SVP 8)
Posté : 18 mars 2005, 11:53
par Vianney
jsuis pas sur d'avoir compris ce que tu veux.
tu veux mettre une variable dans ton lien
<a href="maPage.php?maVariable=<?php echo $valeurVariable;?>">
et apres tu veux la récuperer dans maPage.php
le code de maPage.php :
<?php $inThePocket = $_GET['maVariable']; ?>
et voila c dans la poche

Posté : 18 mars 2005, 20:41
par arno
en fait je n'ai qu'une page php dans laquelle se trouve l'equivalent de plusieurs pages.
je m'explique dans ma page index.php se trouve trois liens qui renvoie sur index.php
lien1 lien2 lien3
Ce que j'aimerais faire c'est si je clique sur lien1 cela affiche une image A dans la page index.php
Si c'est lien2 un document texte.
En fait toute les donnée sont sur le même fichier mais apparaisse qu'en fonction du liens
Posté : 18 mars 2005, 20:57
par Cyrano
Salut
il faut donc que tu utilises des liens internes. mais rtu n'as pas obligatoirement besoin du PHP pour ça...
Ton lien interne sera du type
http://www.monsite.com/mapage.php#lieninterne1
et quelque part, on trouvera dans la page un lien <a name="lieninterne1"></a>
En XHTML, tu peux remplacer l'attribut "name" par "id"
Posté : 19 mars 2005, 05:57
par Elie
Cherche a "ancre" en HTML
Posté : 21 mars 2005, 17:19
par arno
si je pose une ancre tout sera visible sur la page alors que moi je ne desire afficher que ce qui correspond à mon lien
Posté : 21 mars 2005, 17:42
par arno
voici un exemple de code
<table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr><td><a href="index.php?$m="1"">lien 1</a></td><td><a href="index.php?$m="2"">lien 2</a></td><td><a href="index.php?$m="3"">lien 3</a></td></tr>
</table>
<?php
if ($m==1){echo "ca semble marcher???";}
if ($m==2){echo "ca se pourrait bien?";}
if ($m==3){echo "Ca marche!!!!!!!!!!!";}
?>
et voici le message d'erreur
Notice: Undefined variable: m in c:\program files\easyphp1-7\www\test\index.php on line 19/* ce qui correspond à $m==1*/
Posté : 21 mars 2005, 17:46
par charabia
voici un exemple de code
<table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr><td><a href="index.php?$m="1"">lien 1</a></td><td><a href="index.php?$m="2"">lien 2</a></td><td><a href="index.php?$m="3"">lien 3</a></td></tr>
</table>
<?php
if ($m==1){echo "ca semble marcher???";}
if ($m==2){echo "ca se pourrait bien?";}
if ($m==3){echo "Ca marche!!!!!!!!!!!";}
?>
et voici le message d'erreur
Notice: Undefined variable: m in c:\program files\easyphp1-7\www\test\index.php on line 19/* ce qui correspond à $m==1*/

Les variables que tu passes en URL ne doivent pas contenir de $ !
<table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td><a href="index.php?m=1">lien 1</a></td>
<td><a href="index.php?m=2">lien 2</a></td>
<td><a href="index.php?m=3">lien 3</a></td>
</tr>
</table>
<?php
if ($_GET['m']==1){echo "ca semble marcher???";}
if ($_GET['m']==2){echo "ca se pourrait bien?";}
if ($_GET['m']==3){echo "Ca marche!!!!!!!!!!!";}
?>
Posté : 21 mars 2005, 18:02
par arno
j'ai toujours la même erreur qui s'affiche concernant la variable m
Posté : 21 mars 2005, 18:10
par charabia
Page index.php :
<table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td><a href="test.php?m=1">lien 1</a></td>
<td><a href="test.php?m=2">lien 2</a></td>
<td><a href="test.php?m=3">lien 3</a></td>
</tr>
</table>
Page test.php :
<?php
echo $_GET['m'];?>
Qu'est-ce-que tu as en faisant ce code ?
NB : dans ma première réponse j'ai omis de mettre les ".
<table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td><a href="test.php?m=1

">lien 1</a></td>
<td><a href="test.php?m=2

">lien 2</a></td>
<td><a href="test.php?m=3

">lien 3</a></td>
</tr>
</table>
Posté : 21 mars 2005, 18:14
par arno
j'avais remarquer les guillemets mais ce n'est pas la cause
sinon le bout de code fonctionne
Posté : 21 mars 2005, 18:16
par charabia
Tout le code que tu as mis se trouve dans la même page index.php ?
<table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td><a href="index.php?m=1">lien 1</a></td>
<td><a href="index.php?m=2">lien 2</a></td>
<td><a href="index.php?m=3">lien 3</a></td>
</tr>
</table>
<?php
if ($_GET['m']==1){echo "ca semble marcher???";}
if ($_GET['m']==2){echo "ca se pourrait bien?";}
if ($_GET['m']==3){echo "Ca marche!!!!!!!!!!!";}
?>
Je dois filer, je regarderais ça de chez moi si tu n'as pas la solution d'ici là.
a++
Posté : 21 mars 2005, 18:23
par arno
ca marche mais le message d'erreur apparait au depart quand je lance index.php ensuite si je choisis un lien les message disparaissent.
y a t'il une manip pour les messages d'erreur intempestif????????
Posté : 21 mars 2005, 18:29
par iclo
oui, la première fois, ta variable "m" est indéfinie d'où l'erreur il faut que tu vérifies si elle est définie ou pas avec isset() avant de faire tes test tu pourrais faire :
if (isset($_GET['m']) {
if ($_GET['m']==1){echo "ca semble marcher???";}
if ($_GET['m']==2){echo "ca se pourrait bien?";}
if ($_GET['m']==3){echo "Ca marche!!!!!!!!!!!";}
}