SimoX Posté 23 Octobre 2006 Partager Posté 23 Octobre 2006 Bonjour je cherche comment mettre les champs de mon menu déroulant en boucle .. $select1 = '<select name="myselect" >';$select2 = '<option value="'.$value.'_1" name="'.$name.'_1">'.$name.'_1</option>'; for ($i=2;$i<=$nb_champs;$i++) { $select3 = '<option value="'.$value.'_'.$i.'" name="'.$name.'_'.$i.'">'.$name.'_'.$i.'</option>';}$select4 = '</select>';echo "$select1 $select2 $select3 $select4"; les variables $value_1 et $name proviennt d'un formulaire où on px ajouter dynamiquement nos champs ... Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
georges Posté 23 Octobre 2006 Partager Posté 23 Octobre 2006 salut, je ne m'y prendrais pas comme ça mais dans ta boucle, $select3 ne sera jamais égal qu'à la valeur de la dernière boucle, donc : for ($i=2;$i<=$nb_champs;$i++) {$select3.= '<option value="'.$value.'_'.$i.'" name="'.$name.'_'.$i.'">'.$name.'_'.$i.'</option>';} nb: pourquoi mettre un name à tes options ?? Lien vers le commentaire Partager sur d’autres sites More sharing options...
SimoX Posté 23 Octobre 2006 Auteur Partager Posté 23 Octobre 2006 Bon voilà: Le code de la page où il ya le formulaire avec les champs dynamiques Mapage.html <script>function create_champ(i) {var i2 = i + 1;document.getElementById('add1_'+i).innerHTML = 'Nom: <input type="text" size="15" name="name_'+i+'" ></span> Valeur: <input name="value_1" size="24" type="text" id="flux_'+i+'" />';document.getElementById('add1_'+i).innerHTML += (i <= 10) ? '<br /><span id="add1_'+i2+'" style="font-family=Arial; size:10px;"><a href="java script:create_champ('+i2+')">Ajouter un champ</a></span>' : '';document.forms['myform'].elements['nb_champs'].value="" +i+ ""; }</script><form name="myform" method="post" action="valid.php">Nom: <input name="name_1" type="text" id="name_1" size="15" >Value: <input name="value_1" type="text" id="flux_1" size="24"><br/><span id="add1_2"><a href="java script:create_champ(2)">Ajouter un champ</a></span><br /><input type="submit" value="valider"></form> Et pour la page php pour générer mon menu déroulant valid.php <?foreach($_POST as $key => $value) { if(!isset($$key)) $$key = $value;}$select1 = '<select name="myselect" >';$select2 = '<option value="'.$value.'_1" >'.$name.'_1</option>';for ($i=2;$i<=$nb_champs;$i++) {$select3.= '<option value="'.$value.'_'.$i.'" >'.$name.'_'.$i.'</option>';}$select4 = '</select>';echo "$select1 $select2 $select3 $select4";?> Mais là dans la page de validation (valid.php) je coince ca ne marche pas ... Lien vers le commentaire Partager sur d’autres sites More sharing options...
SimoX Posté 24 Octobre 2006 Auteur Partager Posté 24 Octobre 2006 c bon j'ai trouvé la solution ... Donc voila je reprend mon code : Mapage.html <script>function create_champ(i) {var i2 = i + 1;document.getElementById('add1_'+i).innerHTML = 'Nom: <input type="text" size="15" name="name_'+i+'" ></span> Valeur: <input name="value_'+i+'" size="24" type="text" id="flux_'+i+'" />';document.getElementById('add1_'+i).innerHTML += (i <= 10) ? '<br /><span id="add1_'+i2+'" style="font-family=Arial; size:10px;"><a href="java script:create_champ('+i2+')">Ajouter un champ</a></span>' : '';document.forms['myform'].elements['nb_champs'].value= i; }</script><form name="myform" method="post" action="valid.php">Nom: <input name="name_1" type="text" id="name" size="15" >Value: <input name="value_1" type="text" id="flux" size="24"><br/><input type="hidden" name="nb_champs"><span id="add1_2"><a href="java script:create_champ(2)">Ajouter un champ</a></span><br /><input type="submit" value="valider"></form> et pour le fichier pour valider valid.php <?$nb_champs = $_POST['nb_champs'];$select = '<select name="myselect" >';for($i=1;$i<=$nb_champs;$i++){ $select .= '<option value="'.$_POST['value_'.$i].'">'.$_POST['name_'.$i].'</option>';}echo $select . '</select>';?> et voilivoilou ! Merci pour tous Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant