Page 1 sur 1

générer des champs en fonction d'une variable.

Posté : 15 mars 2012, 13:07
par piotrowski-s
Bonjour à tous, je souhaites rajouter des champs selon un numéro qui serait définit dans une variable, à savoir, j'ai fais ceci:
<form action="edit-decompte.php" method="post">Rajouter des liasses <input name="champs" type="text" size="5" maxlength="2" /> <input type="image" src="images/plus.png" /></form>
Le soucis qui m'oppose est maintenant dans la génération de ces champs, à savoir, j'ai fais la condition suivante:
<?php if (!empty ($_POST['champs'])) {?> <?php } else { }?>
au départ je pensais faire quelque chose pour tester la variable entrée et en fonction des données, générer autant de champs mais admettons, (même si c'est très peu probable, que l'utilisateur entre 1200 champs. Je ne vais pas pouvoir m'amuser à tester chaque entrée et faire
<?php } elseif $_POST['champs']==1200 { ?><input type="text"><input type="text"><input type="text"><input type="text"><input type="text"><input type="text"><input type="text"><input type="text"><input type="text"><input type="text"> etc...
Je ne sais pas comment faire. d'avance merci pour votre aide.

Re: générer des champs en fonction d'une variable.

Posté : 15 mars 2012, 13:11
par xTG
Une boucle ? :)

Re: générer des champs en fonction d'une variable.

Posté : 15 mars 2012, 13:28
par piotrowski-s
ça semble être bon, mais je ne sais pas comment l'utiliser. les seuls que je connaissent sont
while ($donnees = mysql_fetch_array($result) ) {

Re: générer des champs en fonction d'une variable.

Posté : 15 mars 2012, 13:51
par piotrowski-s
le soucis qui m'oppose est que cela me renvoit des erreurs.
<?php if (!empty ($_POST['champs'])) { ?><?php int compteur = 0;

while (compteur < $POST_['champs']) ?> <?php 
{ ?>
   <tr><td> <input type="text" name="libelle" ; ?>" /></td>
             <td><input type="text" name="montant" ; ?></td>
             <td><select name="client" ; ?><option>oui</option><option>non</option></select></td></tr>
  <?php  compteur++; ?> <?php  }?><?php } else { ?><?php } ?>

Re: générer des champs en fonction d'une variable.

Posté : 15 mars 2012, 14:22
par piotrowski-s
j'ai essayé en refaisant ça, mais pareil
<?php if (!empty ($_POST['champs'])) { int compteur = 0;

while (compteur < $_POST['champs']) { ?>
   <tr><td> <input type="text" name="libelle" ; ?>" /></td>
             <td><input type="text" name="montant" ; ?></td>
             <td><select name="client" ; ?><option>oui</option><option>non</option></select></td></tr>
  <?php compteur++ }  else { }
}?>

Re: générer des champs en fonction d'une variable.

Posté : 15 mars 2012, 14:28
par Mazarini
compteur => $compteur
$POST_['champs'] => compteur < $_POST['champs'])

Tu devrais mettre moins de <?php ?>
Mettre echo '<tr><td> <input type="text" name="libelle" ; ?>" /></td>' n'est pas plus mal pour la lecture du code quand il y a des conditions ou des boucles.

Re: générer des champs en fonction d'une variable.

Posté : 15 mars 2012, 14:46
par piotrowski-s
J'ai changé le code en ça:
<?php if (!empty ($_POST['champs'])) { int compteur = 0;

while ($compteur < $_POST['champs']) { echo "
   <tr><td> <input type='text' name='libelle' ;></td>
             <td><input type='text' name='montant' ; ?></td>
             <td><select name='client' ; ?><option>oui</option><option>non</option></select></td></tr>
" $compteur++ }  else { }
}?>
en dépit de ce fait la, ça ne fonctionne pas.

Re: générer des champs en fonction d'une variable.

Posté : 15 mars 2012, 15:39
par piotrowski-s
La le code est bon :) (pas d'erreur de syntaxe ou autre...
<?php if (!empty($_POST['champs'])) 
{ ?><?php
for ($compteur = $_POST['champs']; $compteur < $_POST['champs']; $compteur++) { echo '<tr><td> <input type="text" name="libelle" ;></td>
             <td><input type="text" name="montant" ; ?></td>
             <td><select name="client" ; ?><option>oui</option><option>non</option></select></td></tr>'.$compteur++ ;}
			  
?>     <?php } ?>    </table>
            <p><form action="edit-decompte.php?id=<?php echo $_GET['id'] ; ?>&n_doss=<?php echo $_GET['n_doss'] ; ?>&code_client=<?php echo $_GET['code_client'] ; ?>" method="post" name="champs">Rajouter des liasses <input name="champs" type="text" size="5" maxlength="2" /> <input type="image" src="images/plus.png" /></form>
mais, il ne fonctionne pas. je ne comprends pas pourquoi... j'ai biens mon champ qui renvoie le nombre que je veux et en fonction du nombre la condition devrait s'exécuter. La rien... je ne comprends pas pourquoi.

Re: générer des champs en fonction d'une variable.

Posté : 15 mars 2012, 16:52
par xTG
Ta condition est mauvaise.
Tu mets le compteur égal à la valeur finale, donc la condition de fin de boucle est toujours vérifiée.
Initialises le à 0. ;)