Page 1 sur 1
passage de variable par lien
Posté : 24 avr. 2006, 09:42
par nabs
slt a tous,
je souhaiterai envoyer a une page php qui est appelée par un lien, une variable sans qu'elle apparaisse dans l'url. comment peut on le faire svp ?
merci.
Posté : 24 avr. 2006, 09:53
par Ryle
Pour passer des paramètres d'une page vers une autre, tu as deux méthodes : GET et POST (que tu retrouves dans les méthodes d'envoi des formulaires).
La première, GET, consiste à compléter l'url par les variables et valeurs transmises (
http://url/page.php?variable=valeur).
La seconde, POST, consiste à encoder et soumettre les variables sans faire apparaitre leur valeur. Il te suffit pour ça de créer un formulaire avec pour méthode la valeur "post" :
Code : Tout sélectionner
<form name="monFormulaire" method="post" action="page.php">
<input type="text" name="variable" value="" />
...
</form>
Tu peux ainsi récupérer les variables passées dans la page "page.php" à l'aide du tableau $_POST
if(isSet($_POST['variable']))
echo $_POST['variable']; // affiche la valeur associée
Posté : 24 avr. 2006, 10:06
par nabs
oui mais la on passe pas par un lien hypertexte, on utilise dans ce cas un bouton. j'aurai voulu que cela soit un lien. je sais qu'il y a la possibilité de passer par la session, mais en faite il y a plusieurs liens sur cette 1ere page et il appels tous la meme page cible. c pour les différencier que je souhaite envoyer un parametre caché. et si c pas possible en caché je passerai par le voyant en url. merci.
Posté : 24 avr. 2006, 10:11
par Ryle
Je pense que tu te compliques un peu la tache pour pas grand chose, mais si c'est le bouton qui te gènes, tu peux aussi soumettre un formulaire à partir d'un lien à la place d'un bouton :
Code : Tout sélectionner
<a href="javascript:fonctionJavascript(parametre);">texte du lien</a>
<script>
function fonctionJavascript(parametre) {
...
document.nomDuFormulaire.submit();
}
</script>En mettant à jour le formulaire avec les valeurs qui vont bien...
L'inconvénient d'envoyer des données en post, c'est que si l'utilisateur clique sur actualiser ou s'il passe à la page suivante puis clique sur précédent, y a un prompt qui lui demande s'il veut renvoyer les données pour afficher la page... après, c'est vous qui voyez... y en a qu'on essayé, ils ont eu des problèmes, cela dit, il est très rapide !

Posté : 24 avr. 2006, 10:18
par nabs
bon je crois que t'as raison, le mieux sera de passer par le bouton. tant pis pour le lien. merci en tout cas pour votre aide. et si quelqu'un connait la réponse, bein ya pas de mal a faire du bien ! lol.
Posté : 24 avr. 2006, 10:35
par Ryle
arf, bah personnellement, je serais resté sur le get et les variables dans l'url plutot que le bouton en fait
Sinon tu as aussi l'option de réecriture d'url en configurant le serveur si tu as la main dessus... tu pourrais définir des pages virtuelles qui renverraient vers ta page avec les paramètres qui vont bien...
voire faire la meme chose en php en incluant le code correspondant, mais ça multiplie les fichiers sur le serveur pour pas grand chose...
Posté : 24 avr. 2006, 10:39
par nabs
oula !!! c trop compliké pour moi tout ca. en + je peux pas avoir la main sur le serveur ,j'ai pas les droits qu'il faut et pour l'instant je bosse en local. mais moi j'ai trouvé une petite solution simple et simpa : j'utilise les radio. lol. avec un seul bouton j'envoi les valeurs par choix de radio. c une solution, "ca vaut ce que ca vaut !!!" comme disait un prof d'info.lol. si vous en avez d'autres n'hésitez pas. merci.