Récupérer un champ dynamique

Eléphant du PHP | 76 Messages

03 déc. 2012, 22:47

Bonjour à tous,

J'ai fais un formulaire pour la création d'un facture.

Un champ est créé dynamiquement, avec une variable de session. (Quand un appui sur +, une nouvelle ligne description et prix s'ajoute. Lorsqu'on appuie sur - , une ligne disparait)

Tout fonctionne bien.

Le problème, c'est quand je souhaite l'envoyer :/

J'ai fais quelque chose comme ceci :
<input type="text" name="description<?php echo $i; ?>" .... />
Ensuite, je souhaite récupérer la variable envoyé...

Bref.. j'ai tenté plusieurs solution du genre :

$_POST['description']['$i'];
$_POST['description<?php echo $i; ?>']

Mais ça ne fonctionne pas du tout :)

Quelqu'un a une idée?

Merci!

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

03 déc. 2012, 22:54

salut,

Utilise la notation tableau pour les noms des champs par exemple name="truc"


si tu en met plusieurs en mêmes temps, avec des noms différents ils auront tous les mêmes index :)


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 76 Messages

03 déc. 2012, 22:59

Merci pour ta réponse rapide, mais je ne suis vraiment pas sûr de comprendre :/

Eléphant du PHP | 76 Messages

03 déc. 2012, 23:01

Je souhaite récupérer les valeures de ceci :
<?php
for($i=1; $i<=$_SESSION['add']; $i++)	
	{
?>
<tr>
       <td><textarea name="description<?php echo $i; ?>" style="width:812px; height:40px;" rows="3" cols="20"><?php if(isset($_POST['description'])) echo htmlspecialchars($_POST['description']); ?></textarea></td>
	<td valign="top"><input type="text" name="price<?php echo $i; ?>" class="price-fields" value="<?php if(isset($_POST['price'])) echo htmlspecialchars($_POST['price']); ?>" /></td>
</tr>
<?php
	}
?>

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

03 déc. 2012, 23:05

Par exemple
<textarea name="description[<?php echo $i; ?>]"
Il en faut peu pour être heureux ......

Eléphant du PHP | 76 Messages

03 déc. 2012, 23:12

C'est ce que j'ai fais, mais maintenant je souhaite récupérer la bonne valeure dans un $_POST... Il se peut que la personne est cliqué 10 fois sur le + elle aura donc : description1, description2, description3, etc.

ViPHP
xTG
ViPHP | 7331 Messages

04 déc. 2012, 10:19

Fais un var_dump($_POST); et tu verras ce que tu reçois. ;)

Eléphant du PHP | 76 Messages

04 déc. 2012, 17:57

La réponse est ceci :
echo $_POST['description'.$i];
:)

Maintenant, je dois compter le total de toute les valeures retourné :p

Merci pour votre aide, à bientôt.

ViPHP
xTG
ViPHP | 7331 Messages

04 déc. 2012, 18:01

Pour cela la solution de moogli était toute indiquée.
Car pour connaître le nombre de champ dynamique il suffit de faire :
count($_POST['description']);
Et pour accéder à chaque élément :
echo $_POST['description'][$i];
Cela t'évitera de batailler à coup de regex sur les index pour savoir si le champ est une description ou non. :lol: