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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : générer des champs en fonction d'une variable.

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

par xTG » 15 mars 2012, 16:52

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. ;)

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

par piotrowski-s » 15 mars 2012, 15:39

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.

par piotrowski-s » 15 mars 2012, 14:46

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.

par Mazarini » 15 mars 2012, 14:28

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.

par piotrowski-s » 15 mars 2012, 14:22

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.

par piotrowski-s » 15 mars 2012, 13:51

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.

par piotrowski-s » 15 mars 2012, 13:28

ç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.

par xTG » 15 mars 2012, 13:11

Une boucle ? :)

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

par piotrowski-s » 15 mars 2012, 13:07

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.