SimoX Posté 23 Octobre 2006 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
georges Posté 23 Octobre 2006 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 ??
SimoX Posté 23 Octobre 2006 Auteur 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 ...
SimoX Posté 24 Octobre 2006 Auteur 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
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant