Préselection d'un choix dans une balise select

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 : Préselection d'un choix dans une balise select

par Pierig » 06 août 2007, 15:23

Merci bien j'ai comprit en faisant un mix de tout ce que vous m'avez dit et en faisant un autre truc dans une requête de ma classe j'ai récupérer l'id avec laquelle je peut comparer (ce que j'ai dans mon $_POST) donc voilà ça fonctionne.

Merci pour vos précisions sur le select :D

bonne soirée.

par d0m » 06 août 2007, 13:52

Le principe est que dans chaque balise <option.....> tu mettes du code php qui vérifie la condition : si l'id de l'élement est la même que l'ID de réference tu ecris 'SELECTED'.
Pas besoin de javascript, juste du php.

par Ryle » 06 août 2007, 13:51

Si tu regardes le code source généré, tu verras apparaitre l'attribut "selected" dans chacune de tes options. Elles sont donc considérées comme toutes sélectionnées, et puisque ton select n'est pas multiple, seule la dernière valeur est affichée sélectionnée par défaut.

Pour sélectionner par défaut une option il faut qu'elle (et elle seule) contienne l'attribut selected ... A toi de voir quand est ce qu'il faut écrire ou non cet attribut dans ta balise, en fonction de la valeur que tu as reçu en $_POST et de celle en cours dans ta boucle :)

par Pierig » 06 août 2007, 13:36

Avec ce code :
<?php echo '<td><select name="Selection1">',"\n";  ?>
							<option value=''></option><?php
							 foreach($t_tache3->resultat as $support) {
								 // Affichage de la ligne 
								 $selected = NULL;
								 $selected = "selected=".$_POST['f_support_numero'];
								 echo "\t",'<option value="','"', $selected ,'>', $support->getSUPPORT_TYPE(),'</option>',"\n";
							 } 
							 echo '</select></td>',"\n"; 
							?> 

J'obtient :


La dernière option crée par le foreach ce qui pour moi est maintenant logique parce que le champs n'est pas mis à jour. (je pense avoir intégrer les erreurs que j'ai faites sur mon autre sujet ^^)

Je n'ai pas expliquer ça avant mais en fait c'est un formulaire de modification donc je préselectionne les champs (enfin j'aimerai...) et si la personne veut les modifier elle le fait sinon ils restent avec al valeur du selected.

De fait :

Vu que je fait en sorte dans le code ci dessus que mon $selected ait l'ID du "truc" à selectionner normallement si je met :

Code : Tout sélectionner

<option value="','"', $selected ,'>
Pour moi ça devrait prendre la bonne valeur :(

EDIT :


Mon esprit suis deux axes différents l'un me disant que

Code : Tout sélectionner

mon $selected a l'ID du select
et l'autre me disant que le language est interprêter par le serveur => javascript (mais ou ?)

Bref je suis un peu paumer xD
--> je m'aime <--

par Ryle » 06 août 2007, 11:14

Pour qu'une option soit sélectionnée par défaut, il suffit juste que la balise contienne l'attribut "selected" ...

Tu as une boucle qui t'affiche tes options une par une et une variable qui contient la valeur de celle qui doit être sélectionnée.. doit pas être bien difficile de comparer les deux et de coller le "selected" dans celle qui va bien ? ;)

par jpaul » 06 août 2007, 11:12

Bonjour,

Si tu regardes le fonctionnement de la balise select, tu verras qu'il faut lui ajouter selected pour présélectionner une option.

Ne reste plus qu'à trouver le bon test pour ajouter ce selected quand c'est nécessaire.

En espérant que ça t'aidera.

Préselection d'un choix dans une balise select

par Pierig » 06 août 2007, 11:04

Bonjour,

Je souhaite préselectionner un choix dans ma balise select.
Je récupère l'ID de ce que je doit préselectionné.
Je ne sait pas comment comment faire.... :(


Je construit ma liste déroulante comme ceci :

<tr>	
							<td width='15%' align="left" class='input_champ'>Support :</td>
							<?php echo '<td><select name="Selection1">',"\n";  ?>
							<option value=''></option><?php
							 foreach($t_tache3->resultat as $support) {
								 // Affichage de la ligne 
								 echo "\t",'<option value="','"', $selected ,'>', $support->getSUPPORT_TYPE(),'</option>',"\n";
							 } 
							 echo '</select></td>',"\n"; 
							?> 
						</tr>

Je récupère l'ID comme ceci :
$_POST['f_support_numero']
Je doit pouvoir mettre cette valeur de façon à ce que ça sélectionne la bonne ligne dans ma liste.

Des iddées ? :)

ba bye