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

rfrfrf -  
 rfrfrf -
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

  1. djpostka Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   11
     
    Bonjour,

    possible d'avoir le reste du code, car là je ne vois pas de problème.
    0
  2. rfrfrf
     
    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
    1. djpostka Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   11
       
      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
  3. rfrfrf
     
    j'ai essayé mais je n'ai aucun résultat même pas l'alert vide que j'avais la premièr fois
    0
    1. djpostka Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   11
       
      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
    2. Jonor
       
      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
  4. Utilisateur anonyme
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. rfrfrf
     
    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