Page 1 sur 1

formulaire dynamique avec =$_POST

Posté : 03 févr. 2007, 17:05
par bigs
bonjour
je suis nouveau et suis content de connaitre ce forum.

j'aimerais automatiser un formulaire et je suis bloqué à ce probleme .
cas 1
$res=$_POST['prenom'];
echo $res;

cas 2
$prenom="prenom";
$res=$_POST['$prenom'];
echo $res;


pour le cas 1 pas de probleme ca marche mais

Maintenant j'aimerais mettre le contenu de $_post en variable
en l'occurence c'est le cas 2 ne marche pas et comment faire pour que ca fonctionne

Merci d'avance

Posté : 03 févr. 2007, 17:22
par Ryle
Je comprends pas bien ce que tu veux... $_POST est une variable super globale qui contient l'ensemble des données qui ont été passées à la page avec le méthode "post" (par opposition à "get" ou les données figurent dans l'url)

Si tu définies toi même une variable, il te suffit de l'utiliser directement telle que tu l'as définie :)
$prenom="prenom"; 
echo $prenom;


A partir de là tu peux tester les valeurs pour savoir s'il faut les utiliser ou pas :
if(isSet($_POST['prenom'])) // si la variable "prenom" a été envoyée en post
  $prenom = $_POST['prenom']; // je l'affecte à ma variable prenom
else // sinon
  $prenom = 'Juste'; // j'ai pas reçu de prénom, alors je l'appelle Juste Leblanc ;)

// la même chose avec l'opérateur ternaire pour prendre moins de place
$prenom = (isSet($_POST['prenom'])) ? $_POST['prenom'] : 'Juste' ;

echo $prenom; // affiche le pénom envoyé s'il y en a un, sinon affichera 'Juste'

Posté : 03 févr. 2007, 17:42
par bigs
en fait j'ai creé une fonction input de ce genre
function input($type,$text,$text_v)
{
echo "<tr>";
echo "<td>".$text."</td>\n";
if (empty($text_v)) $text_v=sansaccent($text);
echo "<td><INPUT type=\"".$type."\" name=\"".$text_v."\"></td>\n";
echo "</tr>";
}

j'appelle la fonction
$type="text";$text="nom :";$text_v="nom";input($type,$text,$text_v);

et j'essaie de récuperer les données avec
$res = isset($_POST['$text_v']) ? $_POST['$text_v'] : '';

mais ca marche pas !!

Posté : 03 févr. 2007, 19:18
par Ryle
Pense à utiliser les balises [ code ] et [ php ] quand tu postes du code, ca le rend plus lisible :)

qu'est ce qui ne fonctionne pas ? la génération du formulaire ? l'envoi des données ? la récupérations de celles-ci ?

Commence par regarder le code source du formulaire. Tu devrais y retrouver ton champ et pouvoir vérifier qu'il a bien le nom souhaité. Vérifie également que ton formulaire envoi bien les données en post.

Lorsque tu récupères les données de ton formulaire, utilise la commande suivante pour vérifier ce qui a été envoyé :
echo '<pre>';
print_r($_POST);
echo '</pre>';

Enfin, et je pense que ton problème vient de là, il y a une différence entre les apostrophes et les guillemets. Les variables placées entre guillemets sont interprétées, pas celles entre apostrophes.
$var = 123;
echo " ... $var ..."; // affiche : ... 123 ...
echo ' ... $var ...'; // affiche : ... $var ...

// le mieux étant de toujours sortir ses variables :
echo ' ... '.$var. '...'; // affiche : ... 123 ...
$_POST[$text_v] n'est donc pas pareil que $_POST['$text_v'] :)

Posté : 05 févr. 2007, 11:21
par Invité
merci pour ta patience .c'est bon avec ca:

Code : Tout sélectionner

$_POST[$text_v]

Posté : 05 févr. 2007, 12:31
par Ryle
Modération :
bigs, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image
en haut à gauche de ce sujet lorsque tu es connecté ;)