Incrémentation name input PHP

Eléphanteau du PHP | 20 Messages

23 juin 2016, 15:03

Bonjous a tous,

j 'ai une REQ qui affiche une list des livres (nomLivre,nombreExemplaire) ds des inputs text afin de les modifier
mais j'ai un problem au niveau de l’incrémentation nom des inputs (name="")
j'ai trouvé cette solution mais je veux m'assurer si cette manière est pratique ou nn .
<?php 
$Name_Input_Incr=1;
foreach ($result as $value):?>
<input type="hidden" value="<?php  echo $value->id; ?>" name="input<?php echo $Name_Input_Incr++;?>">
<input type="text" value="<?php  echo $value->nomLivre; ?>" name="input<?php echo $Name_Input_Incr++;?>">
</br>
<input type="text" value="<?php  echo $value->nombreExemplaire; ?>" name="input<?php echo $Name_Input_Incr++;?>">
<?php endforeach; ?>

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

23 juin 2016, 17:15

Bonjour,

Non ce n'est pas une bonne solution. Cela t'oblige à savoir que l'input8 est le nom du livre dont l'id est dans input7 et la quantité dans input9 ... ça peut fonctionner, mais c'est compliqué et ça n'est clairement pas maintenable :)

A minima il faudrait que les noms de tes champs désignent leur contenu (id, nom, qte) avec un même incrément pour les 3 (en ne faisant incrémenter ta variable qu'une seule fois par itération de ta boucle pour avoir id1, nom1, qte1, id2, nom2, qte2 ...

Le mieux étant je pense la capacité de php de traduire en tableau les inputs dont le nom comporte des crochets nom[id], qte[id] ... tous tes champs auront ainsi le même nom et tu pourras récupérer les résultats dans un tableau php :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...