Aide sur les variables($) variables(adj) - PHP - Programmation
Marsh Posté le 14-10-2005 à 11:11:55
le contenu de la variable $b est $reponse_a
donc la valeur de $reponse_a est dans $$b ( honnetement, je trouve ca moche, mais c'est legal )
tu peux aussi faire $b = ${"reponse_".$a} auquel cas $b = test
Marsh Posté le 14-10-2005 à 11:23:51
donc si j'ai bien compris tu veux connaitre la valeur de la variable (comme d'hab) mais aussi le nom de la variable (i.e. le nom de l'input du formulaire) ?
Comme php peux générer automatiquement un tableau en fonction des paramètres postés
pourquoi tu fais pas un truc du genre :
Code :
|
auquel cas tu auras un tableau
Code :
|
edit : mouais, ou plus simple
Code :
|
auquel cas tu auras un tableau
Code :
|
Marsh Posté le 14-10-2005 à 11:53:48
flo850: oui c'est dans cette direction que je recherche la solution.
seulement $b ne me livre rien...
j'ai essayé aussi en remplaçant également $a="&#$i;"; par $a=${"&#".$i.";"};
rien ne s'affiche ni à l'ecran ni dans la base.
shakpana: je connais le nom de la variable puisque je la crée, sa valeur également puisque je la tape dans le champ. Je veux l'enregistrer dans la base de données au moyen d'une boucle qui me génèrera les noms de variables sans taper pour chaque réponse mes requêtes SQL.
la modification de la déclaration de mes champs pour avoir un array serait peut-être une solution mais je voudrais faire ca avec proprement avec des variables.
Marsh Posté le 14-10-2005 à 11:57:40
tu as fait afficher $$b ? ( ie le contenu de la variable representée par $b ) ?
edit : et la solution de shakpana me semble plus propre et plus lisible
Marsh Posté le 14-10-2005 à 12:43:29
Ouais bon quitte à travailler avec des Array autant le faire avec $http_post_vars['reponse_a'] je vais voir ce que ca donne
EDIT:
voilà j'ai changé l'approche et j'essaye d'une autre façon:
Code :
|
Déjà ca m'aiderais énormemément si quelqu'un arrivait à faire marcher cette ligne afin d'afficher la valeur du champ à l'ecran:
Code :
|
Tous posts bienvenus. merci.
Marsh Posté le 14-10-2005 à 14:24:14
protoss_tth a écrit : la modification de la déclaration de mes champs pour avoir un array serait peut-être une solution mais je voudrais faire ca avec proprement avec des variables. |
mouais, enfin en quoi n'est-ce pas propre ???
après tout, c'est ton code ...
protoss_tth a écrit : |
Marsh Posté le 14-10-2005 à 14:47:36
protoss_tth a écrit :
|
foreach($_POST as $cle => $valeur ){
if(strpos($cle,"eponse_" ) == 1)
echo "$cle => $valeur<br>";
}
et c'est pas tres joli
Marsh Posté le 17-10-2005 à 12:45:15
Citation : |
les champs d'un formulaire sont stockés dans un array lorsqu'ils sont envoyés, et accessibles au moyen de $http_post_vars['nom du champ'], il est donc inutile de définir un array pour chaque nom de champs...
le probleme c'est que je n'arrive pas à executer cette commande en générant les noms de champs (rappel:qui ne diffèrent que par la dernière lettre a,b,c,d...etc..).
Cela m'aurait permis d'enregistrer tous les champs dans la base de données en 5 lignes au moyen d'une seule boucle contenant ma requête SQL, qui se serait "auto-générée". Mais bon, si ça veut pas... c'est pas dramatique.
En tous cas merci à vous deux pour vos propositions.
Marsh Posté le 17-10-2005 à 13:21:39
Déjà c'est plus $HTTP_POST_VARS mais $_POST.
Et c'est quoi ce $http_vars là ?
Marsh Posté le 18-10-2005 à 19:38:31
protoss_tth a écrit : Déjà ca m'aiderais énormemément si quelqu'un arrivait à faire marcher cette ligne afin d'afficher la valeur du champ à l'ecran:
|
Tu peux utiliser les fonctions ord et chr :
Code :
|
Marsh Posté le 14-10-2005 à 11:06:33
Salut,
[b]Pb:Afin de nettoyer mon code, j'essayes désespérement de réaliser des variables variables.
Utilisation: C'est pour un formulaire qui contient plusieurs champs de même nature que je veux sauvegarder dans une Base.
NB: j'arrive à le faire en tapant pour chaque <input type=text name=reponse_a>,reponse_b,c,d...etc. ma requête SQL mais je voudrais générer les noms des INPUT afin de tout mettre dans une boucle en 15 lignes de code au lieu de tout marquer puisque tout se ressemble
Voilà mon code:
à l'affichage de la requête on pense que tout va bien:
(ID,ID_THEME,ID_AGEGROUP,ID_SEMESTER,ID_MAIN_QUESTION,ORDER_NUM,WORDING,POINTS,ID_QUESTION_TYPE,PROP_NUM,ASK_NUM,MALUS_POINTS,AUTHOR,NOTES,DATE) VALUES ('','','','','','','$reponse_a','','','','','','','','')
seulement dans la base de donnée le code enregistre: "reponse_a" au lieu de "test"
Question: Comment faire pour enregistrer la valeur du champ au lieu du nom de la variable?
L'aide de php précise l'utilisation d'accolades mais les combinaisons que j'ai essayé ne donnent rien, les noms de variables disparaissent même!
De l'aide SVP.
Message édité par protoss_tth le 14-10-2005 à 11:14:28