Slt nico,
J'ai déjà répondu sur ce site à ce genre de question ... mais je ne me souviens plus à qui ni quand !
Revoici donc le message (heureusement que je suis conservateur !)
Passer des variables Javascript d'une page à une autre :
______________________________________________
Pour passer une variable d'une page à une autre il existe plusieurs méthodes selon que tu utilises ou non des
cadres (frames) mais voici la plus simple et la plus employée :
Passer des variables Javascript en utilisant la propriété search de l'objet location
Tu as déjà du voir dans l'adresse de ton navigateur une url du style :
"
http://www.monsiteweb.com/index.htm?aa=1&bb=2"
c'est là que réside toute l'astuce !
Bon voyons comment on fait ...
Supposons que tu as 2 pages html appelées page1.htm et page2.htm
Tu désires envoyer des variables de la page1 à la page2.
Page1.htm : l'envoi
<html>
<head>
<script language="Javascript"
<!--
// On passe 2 variables tant qu'à faire
var param1="var1";
var param2="var2";
function go()
{
// Force le navigateur à charger la nouvelle page (donc page2.htm) et en même temps lui envoie
// les paramètres dans la propriété window.location.search
window.location.href="page2.htm?param1="+param1+"¶m2="+param2;
// Le fait de mettre 'param1=' et 'param2=' n'est absolument pas obligatoire pour JavaScript mais c'est + clair
// Par contre php attend les paramètre sous cette forme !!
// Voir partie nr 2
// Le point d'interrogation après le nom de la page lui est obligatoire
// Ensuite tu peux séparer chaque variable avec le caractère de ton choix, la règle veut que ce soit le "&"
}
// -->
</script>
</head>
<body>
<a href="javascript:go()">Vers la page 2</a>
</body>
</html>
Page 2 : la réception
<html>
<head>
<script language="Javascript"
<!--
// Ici on récupère les variables dans un tableau
var paramArray=window.location.search.substr(1).split("&")
/* Explication
Au départ :
window.location.search = "?param1=var1¶m2=var2"
Ensuite on retire le "?" du début :
window.location.search.substr(1) = "param1=var1¶m2=var2"
Puis on applique la méthode split() qui découpe la chaîne à chaque fois que le caractère "&" (ou un autre) est rencontré et enfin renvoie le tout dans un tableau :
window.location.search.substr(1).split("&")
Le tableau est paramArray : cool non !
*/
// Petite fonction que affiche les variables passées
function test()
for (i=0; i < paramArray.length; i++)
{
// Cerise sur le gâteau : en fait si la variable que tu passes
// contient un caractère spécial comme par ex un "!" alors
// dans window.location.search tu as %21 à la place.
// unescape() : remplace les séquences d'échappement par leur
// caractère correspondant
param=unescape(paramArray[i]);
alert(param);
}
// -->
</script>
</head>
<body onload="test()">
...
</body>
</html>
Comme je te l'ai dit il existe d'autres méthodes : si tu en as besoin voici mon e-mail :
phpujol@nexen.net
Passage de variables en utilisant Php :
________________________________
Le principe est le même que pour Javascript tout au moins pour l'envoie
Tu désires envoyer des variables de la page1 à la page2.
page1.php3 : l'envoi
<html>
<head>
<script language="Javascript"
<!--
// On passe 2 variables tant qu'à faire
var param1="var1";
var param2="var2";
function go()
{
window.location.href="page2.php3?param1="+param1+"¶m2="+param2;
}
// -->
</script>
</head>
<body>
<a href="javascript:go()">Vers la page 2</a>
</body>
</html>
L'utilisation deJS n'est qu'un ex.
On peut aussi avoir :
<?php
$param1="10";
$param2="20";
?>
...
<a href="page2.php3?param1=<?php echo $param1; ?>¶m2=<?php echo $param2; ?>">Vers la page 2</a>
Page 2 : la réception
Php va automatiquement créer pour toi les variables
$param1 et $param2 : tu n'as donc rien à faire !
page2.php3
<html>
<head>
</head>
<body>
...
<?php
echo "param1=".$param1."<br>";
echo "param2=".$param2."<br>";
?>
...
</body>
</html>
Une autre solution consiste à utiliser les formulaires : par ex avec un formulaire la page page1.php3 devient :
<html>
<body>
<form action="page2.php3" method="post">
<input type="submit" value="Vers la page 2">
Entrez le param 1 : <input type="text" name="param1">
Entrez le param 2 : <input type="text" name="param2">
</form>
</body>
</html>
Si tu ne désires pas saisir il suffit de transmettre les paramètres en tant que champs cachés ( hidden)
<form action="page2.php3" method="post">
<input type="submit" value="Vers la page 2">
<input type="hidden" value="<?php echo $param1; ?>" name="param1">
<input type="hidden" value="<?php echo $param2; ?>"
name="param2">
</form>
Ce qui est important c'est de bien donné un nom avec l'attribut "name" !
La page 2 reste inchangée !!
Ps : j'ai trouvé ces explications en anglais sur l'excellent site :
http://www.wsabstract.com
Bye
Philippe
Ca m'a bien aidé ton astuce pour envoyer une variable cachée par formulaire.
2009 à 2012, c'est cool le net
@+