Portée des variables PHP

Résolu
-CCM- Messages postés 927 Date d'inscription   Statut Membre Dernière intervention   -  
-CCM- Messages postés 927 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
A voir également:

16 réponses

arkos78 Messages postés 618 Date d'inscription   Statut Membre Dernière intervention   48
 
tu ve recuperer dans la mm page ou pas?
0
-CCM- Messages postés 927 Date d'inscription   Statut Membre Dernière intervention   84
 
dans la même page oui.
0
Olivier
 
C'est la liste que tu veux récupérer ou l'option choisie ?
0
-CCM- Messages postés 927 Date d'inscription   Statut Membre Dernière intervention   84
 
c'est l'option choisi dans la liste..
0

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

Posez votre question
Olivier
 
Tu as essayé d'abord de voir si ça marche avec une validation classique de type bouton submit ?
0
-CCM- Messages postés 927 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
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
Olivier
 
je te conseille pour palier se problème d'autovalidation de rajouter un cham hidden et de lui donné le nom envoi
0
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
-CCM- Messages postés 927 Date d'inscription   Statut Membre Dernière intervention   84
 
mon form selected est particulier ....... en faite il est dans du php ..
0
-CCM- Messages postés 927 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
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
-CCM- Messages postés 927 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
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
-CCM- Messages postés 927 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
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
-CCM- Messages postés 927 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
-CCM- Messages postés 927 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
-CCM- Messages postés 927 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
-CCM- Messages postés 927 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