Formulaire dynamique

Fermé
sidilweb Messages postés 21 Date d'inscription lundi 6 octobre 2008 Statut Membre Dernière intervention 29 décembre 2012 - 28 mars 2011 à 12:44
sidilweb Messages postés 21 Date d'inscription lundi 6 octobre 2008 Statut Membre Dernière intervention 29 décembre 2012 - 5 juil. 2011 à 16:51
Bonjour,



j'ai créer un petit script qui permet de generer de nouveau champ dans un formulaire, et avec un nom different pour chaque champ, le probléme qui se ose comment faire pour afficher le resultat des champ s'ils sont tros nombreux, 100 ou voir plus

le script et le suivant:

1-le script de definition des nombre de champs :

<?php

<form method=post action=comp2.php3>
<input type=text name=com><input type=submit>
</form>

?>

2-le script de generation des champs


<?php

if(isset($_POST['com'])) $com=$_POST['com'];
else $com="";

echo'<form method=post action=comp3.php><input type=submit>';

for($i=1;$i<=$com;$i++){

echo'<input type=text name=entreprise'.$i.'>';
echo'<input type=text name=lot'.$i.'>';
}
echo'</form>';

?>

3-le script d'affichage des resultats disons affichage du resulta de 6 champs:

<?php

if(isset($_POST['entreprise'])) $entreprise=$_POST['entreprise'];
else $entreprise="";

if(isset($_POST['entreprise2'])) $entreprise2=$_POST['entreprise2'];
else $entreprise2="";


if(isset($_POST['entreprise3'])) $entreprise3=$_POST['entreprise3'];
else $entreprise3="";

if(isset($_POST['lot'])) $lot=$_POST['lot'];
else $lot="";

if(isset($_POST['lot2'])) $lot2=$_POST['lot2'];
else $lot2="";

if(isset($_POST['lot3'])) $lot3=$_POST['lot3'];
else $lot3="";

echo $entreprise;
echo $lot;

echo $entreprise2;
echo $lot2;

echo $entreprise3;
echo $lot3;

?>


mais c'est pas trés evidant pour afficher le resultat de 100 ou 200 méme voir le resultat de 300 champs, il n' y a pas une autre m"thode plus simple pour le faire?

2 réponses

boly38 Messages postés 267 Date d'inscription mercredi 23 février 2011 Statut Membre Dernière intervention 29 septembre 2016 80
29 mars 2011 à 10:47
pour éviter de dupliquer du code, il faut le factoriser au sein d'une fonction

par exemple ici uniquement pour les lots mais on peut ajouter la même chose pour les entreprises :
// factorisation du code
function afficheLotN($num) {
   if ($num == 1) {
     $nomLot = "lot";
   } else {
     $nomLot = "lot$num";
   }
   $lot=""; 
   if(isset($_POST[$nomLot])) {
     $lot=$_POST[$nomLot ];
   }
   echo $lot;
}

// boucle pour appeler N fois la fonction
for ($i=0;$i<6;$i++) {
 afficheLotN($i);
}
0
sidilweb Messages postés 21 Date d'inscription lundi 6 octobre 2008 Statut Membre Dernière intervention 29 décembre 2012
5 juil. 2011 à 16:51
merci
0