formulaire dynamique avec =$_POST

Petit nouveau ! | 2 Messages

03 févr. 2007, 17:05

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

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

03 févr. 2007, 17:22

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'
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 2 Messages

03 févr. 2007, 17:42

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

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

03 févr. 2007, 19:18

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'] :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Invité
Invité n'ayant pas de compte PHPfrance

05 févr. 2007, 11:21

merci pour ta patience .c'est bon avec ca:

Code : Tout sélectionner

$_POST[$text_v]

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

05 févr. 2007, 12:31

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é ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...