Envoyer une variable vers une page en PHP [Résolu/Fermé]

Signaler
-
 AdinathSo -
j'ai besoin de recuperer une variable dans une page auquel on accede par lien (ceci en php). cad que j'ai une variable sur une page et que j'ai definit un lien qui envoie sur une autre page et j'ai besion de recuper une variable de la premiere dans la deuxieme.
merci
@+
nico
A voir également:

17 réponses

Messages postés
8
Date d'inscription
mardi 2 décembre 2008
Statut
Membre
Dernière intervention
18 août 2011
39
Bonjour, pour transmettre des variables et de maniere cachée, utilisez les boutons cachés :

<html>
<head>
</head>
<body>
<form method="post" action="page_vers_laquelle_transferer_la_variable.php"
<input type="hidden" name="nom" value="les_donnees_a_transferer">
</form>
</body>
</html>

et pour les afficher en php sur la page voulue

<?php
echo $_POST['nom'];
?>

PS : J'ecris un peu en retard ! DSL


39
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

vous devez mettre une balise de type submit , pour que les données puissent être transférées
Même si ca ne m'a pas servit :]
2016
06/08/2016 juste pour le fun xD
24/01/2019 ;)
Messages postés
1767
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
605
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+"&param2="+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&param2=var2"

Ensuite on retire le "?" du début :
window.location.search.substr(1) = "param1=var1&param2=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+"&param2="+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; ?>&param2=<?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
Messages postés
1767
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
605
Bjr

Attention : mon message date un peu ... lol

S'il reste valable pour JavaScript en revanche en PHP il est impératif de passer par $_GET[] ou $_POST[] comme l'a dit Jean-François
Bonjour,

meme si le message date, l'utilisation des variables de session est tres simples:

$_SESSION['nom_variable']=valeur;



Et le tour est joué, voila une variable de session accesible à toutes tes pages php! ;) (pour pouvoir utiliser les variables de session, il faut ouvrir une session au debut de la page :

<?
/*on appel les fonctions utiles si besoin est*/

session_start(); /* on démarre la session */
Bonjour,

Je veux également récupérer les valeurs saisies sur une page formulaire.html vers une page traitement.php avec la fonction POST, afin de les envoyer par mail avec la fonction mail(), puis afficher une page de confirmation d'envoi confirmation.html.

J'ai l'impression que les valeurs récupérées dans la page traitement.php sont vides car je reçois bien le mail mais le corps du message est vide, et lorsque je fais des tests d'affichage des variables avec la fonction echo, rien ne s'affiche.

Ma page traitement.php vous semble-t-elle correcte ?

<?php
//Récupération des valeurs des champs du formulaire
$username = $_POST['username'];
$firstname = $_POST['firstname'];
$dateofbirth = $_POST['dateofbirth'];
//etc.

//Initialisation des variables
$destinataire='moi@monmail.com';
$subject='Nouvelle inscription';
$message='';
$entete='From: '.$destinataire;

//Tous les champs du formulaire sont ajoutés dans le message
$message .= "Username : $username\n";
$message .= "Firstname : $firstname\n";
$message .= "Date of birth : $dateofbirth\n"; 

//Envoi du mail
mail($destinataire,$subject,$message,$entete);

//Page de confirmation
header('Location: http://www.monsite.com/confirmation.html');
?>
oui mais comment recuperer une valeur php pour l'envoyer sur une autre page php?

pour récupéré la variable passé dans l'URL (méthode GET) ou de manière invisible (méthode POST) dans une autre il s'uffit d'utilisé $_GET["nom_de_la_variable"] ou $_POST["nom_de_la_variable"].

ex: $variable=$_GET["nom_de_la_variable"] ou $variable=$_POST["nom_de_la_variable"]
donc pour la méthode GET tu aura une URL du type
www.commentcamarche.net/page.php?nom_de_ma_variable=valeur
Messages postés
1
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
30 mai 2007

De passage.....
Philippe,
Merci pour cette info.
Merci pour ces explications lumineuses,
j'en tire grand profit pratique et pédagogique
Vincent
Bonjour,
memes informations, je veux les transmettre vers 2 pages .php
le pb c'est que la méthode post ne marche que sur la première page mentionnée dans form.

et j'ai pas su comment utiliser la méthode des sessions

bonsoir,
Comment je peux rediriger vers une autre page avec l'appel d'une fonction comme paramètre.
C'est urgent s'il y a des réponse vous pouvez me l'envoyer à mon E-mail""-- khawla_2002@hotmail.fr --"".
Merci pour votre attention.
et si on veut transemttre une variable de dux mots avec get ??

xxx.php?album=balck album par exemple

php prends seulement le premier mot, soit black

les "" et les '' ne fonctionnemt pas

MERCI !!
Tu mets tes 2 mots dans une variable.

$maVariable = "black album";

Ensuite tu feras :

xxx.php?album=<?php echo $maVariable; ?>
> Fabou25
Bonjour,
Merci, merci, merci pour ces conseils !
En passant d'un hébergement Lycos à OVH il y a 3 semaines, mon site PHP n'a plus bien fonctionner du tout. Après lecture de vos échanges, j'ai ajouté des lignes du type $variable=$_GET["nom_de_la_variable"] dans toutes les pages à problème et ... tadaaa ! ça fonctionne à nouveau !
J'espère ne pas trouver d'autres bugs mais j'ai bon espoir maintenant.
Encore merci :)
Baklavadoll, www.lecineclub.com
Bonjour
Comment récupérer 2 variable en post qui porte le même nom mes pas la même valeur
merci d' avance
salut webpages je penses que c'est pas du tout possible car si on mais le meme nom php prend en compte le premier qu'il rencontre et omet le dernier alors .. le mieux c'est de donner deux noms differents
Merci pour ta réponse gerrard88
moi j'aurai utilisé les sessions =)
d'abord, tu ouvre la session avec :
session_start();
ensuite
$_SESSION['variable'] = valeur;

$_SESSION['var'] est une variable super globale, et elle peut être utilisée tant que la session est ouverte.
Je pense que c'est un peu trop tard pour la réponse...mais ca peut servir a quelqu'un d'autre :)
Messages postés
2
Date d'inscription
mercredi 3 mars 2010
Statut
Membre
Dernière intervention
19 août 2010

Bonjour
Merci pour ta réponse hero888 mes c résolu a bientot
Merci Beaucoup Les amis.grace a vous j'ai trouvé la reponse

bonjour,
je crois que ce que j'essaie de faire ,quelqu'un a la reponse :)
en clair je veu voir par exemple ce que fai une personne en temp réel
donc j'utilise jquery mais je n'arrive pas a rentrer ma variable dans ma requete sql
mon code :

<div id="mave" >
//c'est ici que s'affichera les personnes
</div>

<script type="text/javascript">
<!--

function online()
{

$.ajax({
type: 'GET',
url: 'update_ville.php',
success: function(data){$('#mave').html(data);}
});

}

// je lances l'exécution de la fonction chaque 3 secondes
$('document').ready(function(){
setInterval('online();',3000);
});
-->
</script>


mon fichier update_utilisateur.php :
select *
from historique
where id='$var'
;

dans le fichier ou ce trouve mon div ,je récupère l'id correspondant a l'utilisateur en php avant mon div

j'ai essayer ceci :

<div id="mave" >
//c'est ici que s'affichera les personnes
</div>

<script type="text/javascript">
<!--

function online()
{
var param1="$idc";
$.ajax({
type: 'GET',
url: 'update_ville.php?=+param1+',
success: function(data){$('#mave').html(data);}
});

}

// je lances l'exécution de la fonction chaque 3 secondes
$('document').ready(function(){
setInterval('online();',3000);
});
-->
</script>

mais il me marque pour ma variable : param1
merci !
bonjour
j'ai écris cela pour faire passer mes variables
<form method="POST" action="http://mon_site/components/com_batenergie/print/eclairage.php" target="_blank">
<div align="right">
<input type="submit" value="Fiche de synthèse">
<input type="hidden" name="nbrpoints" value="<?php echo $nbrpoints ?>" />
<input type="hidden" name="sumpuissance" value="<?php echo $sumpuissance ?>" />
<input type="hidden" name="conso10" value="<?php echo $conso10 ?>" />
<input type="hidden" name="number" value="<?php echo $number ?>" />
</div>
</form>
néanmoins lorsque je clique sur le submit rien ne se passe il recharge seulement la page sur laquelle je suis
je précise que je suis dans un composant MVC Joomla, et que ces variables sont en fait des résultats de calculs donc pas poster, la méthode POST est-elle toujours valable ...
LJ
i solved my problem with this code in my pdf file
Code :Sélectionner tout - Visualiser dans une fenêtre à part

class PDF extends FPDF {
private $surface='';
private $data='';

//initialise les variables globales
function InitVar($item) {
$this->surface = trim ($item->surface);
$this->data = JRequest::get('post');
}
with <input in view>
and this in my controller
Code :Sélectionner tout - Visualiser dans une fenêtre à part

function printy()
{
// Get data from the model
$model = $this->getModel(batenergieitem);
$model->activeAll();
$model->active('predefined', 'default');
$item = $model->getItem();

require(JPATH_COMPONENT.'/print/pdf_file.php'); }

$pdf->Output();
}
LJ