[JS] Pré-selection d'une liste déroulante [Résolu/Fermé]

Signaler
Messages postés
197
Date d'inscription
dimanche 12 novembre 2006
Statut
Membre
Dernière intervention
18 juillet 2011
-
 LN -
Bonjour,

J'essaye de sélectionner la valeur d'une liste déroulante en JS, en fonction d'une variable PHP. Tout cela au chargement de ma page. J'imagine que ce n'est qu'une erreur toute bête, mais malgré tout, je bloque. Une idée?

Voilà mon code :

<?php 
$id = 'IPB'; 

?> 

<html> 
 <head> 
  <script language="Javascript"> 
   function select(selection,maliste){ 
    document.getElementByName(maliste).selectedIndex = selection; 
   } 
  </script> 
 </head> 
 <body onLoad="select(<?php echo $id ?>,chef_section);"> 
  <select  class="input" name="chef_section" > 
   <option value="LBT">LBT</option> 
   <option value="CGT">CGT</option> 
   <option value="IPB">IPB</option> 
  </selected> 
 </body> 
</html>



Merci d'avance!

2 réponses

Messages postés
18440
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
23 septembre 2020
4 216
Salut.

Il y a plusieurs petites erreurs :
- Il faut ajouter des guillemets simples autour de la variable PHP dans le code JS car c'est une chaine de caractère.
- Pareil pour 'chef_section'
- getElementByName n'existe pas, c'est getElementsByName
- selectedIndex est un entier indiquant la position de l'élément actuellement sélectionné. 0 pour le premier, 1 pour le second, etc.

Voilà la fonction :
function select(value, list_name) {
	// Récupérer toutes les options
	var options = document.getElementsByName(list_name).item(0).options;
	
	// Pour chaque option
	for(i = 0 ; i < options.length ; i++) {
		var option = options[i];
		if(option.value == value) {
			option.selected = true;
		}
	}
}


Et la balise body :
<body onload="select('<?php echo $id; ?>', 'chef_section');">

Ton ordinateur ne fait pas ce que tu veux ... mais ce que tu lui dis de faire.
Bonne année à tous
merci merci merci
Messages postés
197
Date d'inscription
dimanche 12 novembre 2006
Statut
Membre
Dernière intervention
18 juillet 2011
91
Bonjour,

Rien à redire c'est parfait!
Merci beaucoup, post résolu!