Page 1 sur 1

passage de variable par balise href

Posté : 03 mars 2005, 21:11
par Darim
Voici mon code:
<? echo $niv; ?>
<p><a href="Ajout.php?niv=$niv">Ajouter </a>
</p>

J'ai des problèmes lors de l'envoi de la variable $niv à la page Ajout.php. Le echo me renvoie bien la valeur de $niv, mais quand je récupère la variable $niv dans la page Ajout.php elle contient la chaine de caractères $niv et pas la valeur contenue dans la variable.
Je récupère la variable avec la méthode GET, mais le problème vient de l'envoi car au survol du lien avec la souris niv ne contient que la chaine de caractère $niv).

Alors que dans une instruction comme celle ci:
header("location:Back.php?niv=$niv");
ça marche.

Pourquoi?

Merci de votre aide!!!

Posté : 03 mars 2005, 21:35
par Xenon_54
<a href="Ajout.php?niv=<?php echo urlencode($niv); ?>">Ajouter</a>
Faut afficher la chaine à envoyer non?
Utilise urlencode() pour être certain que toute la chaine soit correctement envoyée. (tout dépend biensûr du contenu de la variable)

MERCI!!!

Posté : 03 mars 2005, 21:38
par Darim
un grand merci

Posté : 03 mars 2005, 21:39
par renan44
de la façon dont tu faisait c'est logique que la valeur soit $niv puisque, bien que tu spécifie le $ signalant une variable, celle ci n'est pas dans un script php, mais html, ki comprend lui, le texte $niv


Il te faut donc mettre :
<a href="Ajout.php?niv=<? echo $niv; ?>">Ajouter </a>

Posté : 03 mars 2005, 21:42
par Babar
Parce que la 2e fois que tu fais appel à ta variable $niv, tu n'es plus dans une balise php. Donc php ne la traite pas et html prend ça comme une chaine de caractères comme tout le reste.
Il faut faire un truc du genre:
<? echo $niv; ?>
<p><a href="Ajout.php?niv=<? echo $niv; ?>">Ajouter</a></p>
Ou (ce qui revient au même):
<?
echo $niv;
echo "<p><a href=\"Ajout.php?niv=$niv\">Ajouter</a></p>";
// sans oublier les antislashs \ devant les guillemets qui sont à l'intérieur...
// ...pour que php les traites comme de simples caractères
?>
Voilou, voilu :wink: