Portée des variables PHP

Résolu
-CCM- Messages postés 930 Date d'inscription   Statut Membre Dernière intervention   -  
-CCM- Messages postés 930 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je veux récupérer les valeurs de mes liste deroulante, j'ai lu des tutaux concernant la visibilité des variables...
mais j'ai un code source de cette sorte

<html>
..
<?php code php ... ?>
..
..
..
<?php ICI IL Y A MES CHAMPS

echo "
<form action='toto.php' method='POST'>
<select onchange='submit()' name='listeA'>
<option selected></option>
";
....
..

if (isset($_POST['listeA']))
{
$repertoire = $_POST['listeA'];
//chemin relatif vers le rep depuis le script
$chemin_repertoire =...............

/********* Je récupere bien la valeur de mes champs ici ************/
?>
..
html
html
html
..
<?php ICI JE VEUT RECUPERER LA VALEUR DES CHAMPS

if( isset($_POST['envoi']) )// si formulaire envoyé
{

// récuperer la date de publication
if(isset($_POST['listeA']))
$listeA=$_POST['listeA'];

/************* impossible de récupérer la valeur du champs ***********/
?>
..
html
html
html
..
.
</html>

pouvez vous m'indiquer comment réaliser la récuperation de variables ??

je me suis aider de ce tutaux mais en vain ..

http://www.datafreedom.fr/php/language.variables.scope.html

16 réponses

  1. arkos78 Messages postés 662 Statut Membre 48
     
    tu ve recuperer dans la mm page ou pas?
    0
  2. -CCM- Messages postés 930 Date d'inscription   Statut Membre Dernière intervention   84
     
    dans la même page oui.
    0
  3. Olivier
     
    C'est la liste que tu veux récupérer ou l'option choisie ?
    0
  4. -CCM- Messages postés 930 Date d'inscription   Statut Membre Dernière intervention   84
     
    c'est l'option choisi dans la liste..
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Olivier
     
    Tu as essayé d'abord de voir si ça marche avec une validation classique de type bouton submit ?
    0
    1. -CCM- Messages postés 930 Date d'inscription   Statut Membre Dernière intervention   84
       
      je récupere bien mes valeurs avec mon premier

      // récuperer le type
      if(isset($_POST['listeA']))
      $type=$_POST['listeA'];
      else $type="";

      il n'y a pas de souci ...j'ai fait des test avec un popup..


      c'est dans la deuxieme portion de code php que je doit récuperer mes valeurs ... et un code <HTML sépare ces deux code php>
      0
  7. Olivier
     
    il faudrait que tu me dises d'où sort ton $_POST['envoi'] : s'il n'est définit nullepart étant donné la validation par javascript, la suite des commande contenue dans ton if ne seront pas executées.
    0
  8. Olivier
     
    je te conseille pour palier se problème d'autovalidation de rajouter un cham hidden et de lui donné le nom envoi
    0
  9. Olivier
     
    un ex : <form action='toto.php' method='POST'>
    <select name='listeA' onchange='submit()'>
    <option selected>rtet</option>
    <option >aaaa</option>
    </select>
    <input type='hidden' name='envoi' value='ok />
    </form>
    0
    1. -CCM- Messages postés 930 Date d'inscription   Statut Membre Dernière intervention   84
       
      mon form selected est particulier ....... en faite il est dans du php ..
      0
  10. -CCM- Messages postés 930 Date d'inscription   Statut Membre Dernière intervention   84
     
    , la suite des commande contenue dans ton if ne seront pas executées
    non je récupere bien mes variables


    il faudrait que tu me dises d'où sort ton $_POST['envoi'] : s'il n'est définit nullepart


    il est dans la deuxième portion de code php ...

    en gros j'ai :

    <!-- bloc "contenu" -->
    <div id="contenu_admin">
    <!-- titre-->
    <p align="center"><span class="titre_cat">.:: Ajouter un fichier ::.</span></p>
    <span class="libel">

    Type :

    <?php

    //chemin relatif vers le rep depuis le script
    $chemin_repertoire = "../";
    echo "
    <form action='index2.php' method='POST'>
    <select onchange='submit()' name='listeA'>
    <option selected></option>
    ";
    ...
    ...
    ..
    .
    function recupe()
    {
    // récuperer le type
    if(isset($_POST['listeA']))
    $type=$_POST['listeA'];
    else $type="";
    ?>

    <br/>
    <br/>
    <label for="new_rep">Ou nouveau dossier :</label><br />
    <input type="text" name="new_rep" value= "" size="20"/>
    <br/>
    <br/>

    <php?
    if( isset($_POST['envoi']) )// si formulaire envoyé
    {

    // récuperer la date de publication
    if(isset($_POST['listeA']))
    $p=$_POST['listeA'];
    else $p="";
    ...
    ..
    .
    .
    ?>
    0
  11. Olivier
     
    Oui mais if (isset($_POST['envoi'])) ne signifie pas "si le formulaire est envoyé" mais "si la variable "envoi" existe.
    Pour qu'elle existe, il faut qu'elle soit crée, soit en donnant la nom à un bouton, mais ça ne va pas parceque tu veux valider le scrip lorsque le select est modifié, alors il ne te reste plus qu'à rajouter un champ hidden ou remplacer $_POST['envoi'] par $_POST['listeA'] ce qui dans ton cas devrait revenir au même.
    0
    1. -CCM- Messages postés 930 Date d'inscription   Statut Membre Dernière intervention   84
       
      if (isset($_POST['envoi'])) ne signifie pas "si le formulaire est envoyé" mais "si la variable "envoi" existe.
      Autant pour moi ....

      <input type="submit" name="envoi" value="Envoyer"><br></span>



      $_POST['envoi'] par $_POST['listeA'] ce qui dans ton cas devrait revenir au même.

      en faite j'ai plein de champs je n'ai pas uniquement listeA.

      listeA est mon premier champs, et la validation doit se faire quand tout mes champs seront remplit
      0
  12. Olivier
     
    pour reprendre ton exemple :

    <?php

    //chemin relatif vers le rep depuis le script
    $chemin_repertoire = "../";
    echo "
    <form action='index2.php' method='POST'>
    <select onchange='submit()' name='listeA'>
    <option selected></option>
    </select>
    <intput type='hidden' name='envoi'>
    </form>
    ";
    ...
    ...
    ..
    0
  13. -CCM- Messages postés 930 Date d'inscription   Statut Membre Dernière intervention   84
     
    j'ai essayer la methode avec les champs masqué (ici en texte pour l'affichage )

    
    		echo "
    		</select>
    		<input type='text' name='listeAbis' value='".$_POST['listeA']."'>
    		</form>
    		";
    		echo "
    		<form action='index2.php' method='POST'>
    		";
    		if (isset($_POST['listeB']))
    		{
    			echo "
    			</select>
    			<input type='text' name='listeBbis' value='".$_POST['listeB']."'>
    			</form>
    			";
    		}
    	}
    
    	// récuperer le type 
    	if(isset($_POST['listeAbis']))      
    		$type=$_POST['listeAbis'];
    	else $type="";
    	
    	// récuperer le dossier 
    	if(isset($_POST['listeBbis']))      
    		$doss=$_POST['listeBbis'];
    	else $doss="";
    
    	
    	/******DEBUG *//////
    	echo "<script>alert('ALERT PHP SCRIPT 1 :  _____type=$type ____ Dossier= $doss.');</script>"; 
    
    ?>
    


    la mon champs 2 ne s'affiche même plus :(
    0
  14. Olivier
     
    Je suis désolé mais il m'est difficile de vérifier qu'il n'y a pas une erreur grammaticale parce qu'il manque une trop grande partie du script.

    Le principe :
    donner a la balise form la methode POST.
    Donner un nom a tout les champs dont on veut récupérer des valeurs.
    En php, ne parler coder que sur des valeurs envoyées avec certitude

    sinon envoie moi ton code en mail et je le regarde. bye
    0
    1. -CCM- Messages postés 930 Date d'inscription   Statut Membre Dernière intervention   84
       
      << donner a la balise form la methode POST >>

      --> echo "<form action='index2.php' method='POST'>";


      << Donner un nom a tout les champs dont on veut récupérer des valeurs. >>

      echo "<input type='text' name='A' value='".$_POST['listeA']."'>"; //nom :A
      echo "<input type='text' name='B' value='".$_POST['listeB']."'>"; // nom B
      $type=$_POST['A']; // récuperer le type
      $doss=$_POST['B']; // récuperer le dossier




      << En php, ne parler coder que sur des valeurs envoyées avec certitude >>

      echo "<script>alert('ALERT PHP SCRIPT 1 : _____type=$type ____ Dossier= $doss.');</script>";
      echo"</form>";



      sa ne marche toujours pas :(
      0
  15. -CCM- Messages postés 930 Date d'inscription   Statut Membre Dernière intervention   84
     
    re-
    ouaip je comprend que c'est dur a suivre sans tout le code ....
    Pour ce que tu m'a dit..
    c'est exactement ce que j'ai fait..

    je voudrais bien t'nvoyer le code mais je n'ai pas ton mail et tu n'est pas connecté :s
    0
  16. -CCM- Messages postés 930 Date d'inscription   Statut Membre Dernière intervention   84
     
    bon je récupere bien mes valeur avec la modification de toutes mes balises form ....

    mais j'avais un script d'upload dans mes <php? ?> il ne marche plus :(
    0
  17. -CCM- Messages postés 930 Date d'inscription   Statut Membre Dernière intervention   84
     
    les form etait mal fait et mon script d upload ne marchais plus, la sa va mieux .... SA MARCHE
    0