Variable de variable dans un $_post (PHP)

Résolu/Fermé
Riette - 19 juin 2007 à 11:20
 Alain42 - 22 juin 2007 à 11:44
Bonjour,

J'ai un serieux pb :
Je suis une adèpte des variables de variables en PHP ($$mavariable). Celà me permet d'automatiser un max mes programmes.
Pb : je n'arrive pas à l'utiliser dans un $_post
J'ai lu récemment ceci : "Variables variables: Les superglobales ne peuvent pas être utilisées comme variables dynamiques dans les fonctions ou les méthodes des classes."

Avez vous une astuce pour contourner ce pb?

Pour être plus précise, j'ai un formulaire qui est créé automatiquement. Je ne connait donc pas le nom des champs. Pour retrouver ces noms, il me faut piocher dans une BDD. Je récuppère donc le nom du champ dans une variable $nomChamp et je voudrait récuppérer ensuite le contenu de ce champs qui se trouve dans le formulaire $_POST[$nomChamp]
Le programme ne comprend pas cette commande, il veut absoluement une chaine de caractère dans les crochets du POST...

Au secouuuuurs :'(

Merci par avance à ceux qui pourront me venir en aide.

Marie

4 réponses

Une autre idee:

$_POST[] est en fait un array.

Donc par un froeach($_POST as $cle=> $value)

tu peux avoir tous tes noms de champs (y compris le bouton submit) dans les $cle, et tu traites en travaillant sur le debut du nom car je suppose que c'est seulement le fin du nom qui est variable.
2
A ouiiiiii :D

ça marche !! le foreach me redonne en plus le nom des champs !! c'est génial !
Merci beaucoup !!! Je vais enfin pouvoir avancer ce projet qui était du coup un peu resté en stand by.

Merci à tous et si je rencontre un nouveau pb... je n'hésiterais pas à faire appel à vous :P

Bonne journée

Marie
0
Alain42 > riette
22 juin 2007 à 11:44
Ce fut avec plaisir !

C'est puissant les array en php
0
et si tu mets:

$_POST[{$nomChamp}] ?
1
Malheureusement non.
J'ai essayé :

$lechamp = "$_POST['".$nomChamp."']";
echo $$lechamp;

puis :
$lechamp = $_POST[{$nomChamp}];

puis :
$lechamp = $_POST['{$nomChamp}'];

puis :
$lechamp = $_POST[$nomChamp];

puis :
$lechamp = $_POST['$nomChamp'];

rien à faire... :'(

Marie
0
Juste une petite idee:

C'est normal que le$_POST[''$nomchamp'']; ne marche pas car à ce moment là la variable $nomchamp n'est pas chargée.

essaye en passant depuis ton formulaire le nom de la variable par un champ caché.
a condition que la variable variable soit definie avant le chargement de la form

<input type="hidden" name=nom_champ value="<?php echo $nom_champ; ?>" >

après:
$nom_champ=$_POST['nomchamp''];
et $valeur_postée=$_POST[''$nomchamp''];
1
Slydersbug Messages postés 6 Date d'inscription mardi 19 juin 2007 Statut Membre Dernière intervention 19 juin 2007
19 juin 2007 à 14:29
$_POST[''$nomchamp'']; ?
0