$a=$_POST['a'] mais $a n'est pas reconue

Fermé
rfrfrf - 13 mai 2016 à 20:14
 rfrfrf - 14 mai 2016 à 22:45
Bonjour,

J'envoie une variable a avec une zone de texte caché dans un formulaire

et je récupere bien la valeur en php

if ( isset($_POST['a'])) {

$a=$_POST['a'];

echo '<script type="text/javascript">alert("' . $a .'");</script>';


Mais quand je veux utilisé $a dans un autre endroit comme dans une fonction la variable est vide même si $a a déjà pris la valeur de $_POST['a']

Merci d'avance pour votre aide

5 réponses

djpostka Messages postés 48 Date d'inscription jeudi 28 avril 2016 Statut Membre Dernière intervention 14 mai 2016 11
13 mai 2016 à 20:25
Bonjour,

possible d'avoir le reste du code, car là je ne vois pas de problème.
0
Oui bien sûr

voila normalement j'ai deux variables dans deux zones de texte cachées dans un formulaire a et b et une fonction recupere() qui utilise la variable $a recupéré dans la première condition



function recupere()
{
echo '<script type="text/javascript">alert("' . $a .'");</script>';
}


if ( isset($_POST['a'])) {

$a=$_POST['a'];

}

if ( isset($_POST['b'])) {

recupere(); //fonction qui utilise la valeur de la variable $a

}

le resultat de la fonction recupere est une alert vide normalement je dois avoir la valeur de $a

0
djpostka Messages postés 48 Date d'inscription jeudi 28 avril 2016 Statut Membre Dernière intervention 14 mai 2016 11
Modifié par djpostka le 13/05/2016 à 21:56
D'accord, donc là tu essaye d'affiché la variable "$a" avant de la définir.


if ( isset($_POST['a'])) {

$a=$_POST['a'];
function recupere()
{
echo '<script type="text/javascript">alert("' . $a .'");</script>';
}

}

if ( isset($_POST['b'])) {

recupere(); //fonction qui utilise la valeur de la variable $a

}


Essaye comme ça
0
j'ai essayé mais je n'ai aucun résultat même pas l'alert vide que j'avais la premièr fois
0
djpostka Messages postés 48 Date d'inscription jeudi 28 avril 2016 Statut Membre Dernière intervention 14 mai 2016 11
13 mai 2016 à 22:49
Essaye juste ça pour être sure que ton post n'est pas vide

if(!empty($_POST['a'])) {

echo "la variable $_POST['a'] =";
echo $_POST['a'];

}
else {
echo "la variable $_POST['a'] est vide";
}
0
Salut,

c'est surtout le reste du code qui crée la valeur POST qu'il faudrais voir.

Essayez echo $_POST['a']; avant le isset pour voir déjà si vous avez une variable et sa valeur.
Quelle est l'erreur javascript et pourquoi utilisez vous une méthode on ne peut plus tordue?

Vous pouvez écrire les valeurs avec PHP dans le HTML pour les récupérer ensuite avec javascript, utilisez AJAX qui fait la même chose mais dans un fichier texte si vous voulez faire des fonctionnalités entre la page et le serveur sans avoir à rechargé celle ci ou les transmettre dans l'URL...

Qu'affiche le HTML(le fichier interprété par le navigateur pour avoir le code généré par PHP) ? L'erreur devrais se voir facilement.
0
Utilisateur anonyme
14 mai 2016 à 09:04
Bonjour

En PHP, les variables à l'intérieur d'une fonction ont une portée locale. Ça veut dire que la variable $a définie à l'intérieur d'une fonction n'est pas la même que la variable $a définie à l'extérieur de la fonction.
Si tu veux qu'il s'agisse de la même variable, il faut mettre
global $a;
au début de la fonction.
function recupere()
{
  global $a;
  echo '<script type="text/javascript">alert("' . $a .'");</script>';
}

if ( isset($_POST['a'])) {
  $a=$_POST['a'];
}

if ( isset($_POST['b'])) {
  recupere();   //fonction qui utilise la valeur de la variable $a 
}

Le mieux étant en général de ne pas utiliser de variable globale, mais de la passer en paramètre :
function recupere($param)
{
  echo '<script type="text/javascript">alert("' . $param .'");</script>';
}

if ( isset($_POST['a'])) {
  $a=$_POST['a'];
}

if ( isset($_POST['b'])) {
  recupere($a);   //fonction qui utilise la valeur de la variable $a 
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Merci pour vos réponse

normalement vos réponse vont résoudre mon problème si ma page ne se recharge pas à chaque fois

donc j'aurai toujours le même problème car chaque condition se déclenchent avec un rechargement de la page ce qui fait les valeurs des variables seront toujours initialisées

je ne sais pas si j'ai bien raison ou non
0