Formulaire dynamique

sidilweb Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   -  
sidilweb Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   80
 
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   Statut Membre Dernière intervention  
 
merci
0