[JS] Pré-selection d'une liste déroulante

Résolu
Laorra Messages postés 195 Date d'inscription   Statut Membre Dernière intervention   -  
 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!
A voir également:

2 réponses

avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
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
0
LN
 
merci merci merci
0
Laorra Messages postés 195 Date d'inscription   Statut Membre Dernière intervention   108
 
Bonjour,

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