4 votes

Le nom de la variable $_POST est une variable, comment la récupérer ?

Les utilisateurs de mon site web peuvent générer un formulaire personnalisé. Tous les champs sont enregistrés dans une base de données avec un ID unique. Lorsque quelqu'un visite le formulaire, l'attribut 'name' du champ est field*ID*, par exemple

<p>Your favorite band? <input type="text" name="field28"></p>
<p>Your Favorite color? <input type="text" name="field30"></p>

Après avoir soumis le formulaire, j'utilise php pour valider le formulaire, mais je ne sais pas récupérer la valeur de $_POST[field28] (ou tout autre numéro du champ).

<?
while($field = $query_formfields->fetch(PDO::FETCH_ASSOC))
 {
 $id = $field[id];

 //this doesn't work!!
 $user_input = $_POST[field$id];

 //validation comes here
 }
?>

Si quelqu'un peut m'aider, j'apprécierais vraiment !

11voto

Amber Points 159296

Ajoutez quelques citations :

$user_input = $_POST["field$id"];

6voto

Mike B Points 18950

Je vous suggère de tirer parti de la syntaxe des tableaux de PHP pour les formulaires :

<input type="text' name="field[28]" />

Vous pouvez y accéder en php avec $_GET['field'][28]

3voto

Ingmar Boddington Points 3210
$user_input = $_POST['field'.$id];

2voto

faino Points 1725

N'oubliez pas que vous utilisez un string pour la première partie de la input alors essayez quelque chose comme : $user_input=$_POST['field'.$id]; . Aussi, je suggérerais de les appeler dans un array pour récupérer toutes les données :

<?php
    $user_inputs=array();
    while($field=$query_formfields->fetch(PDO::FETCH_ASSOC)) {
        $id=$field['id'];
        $user_inputs[]=$_POST['field'.$id];
    }
?>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X