Page 1 sur 1

pb liste deroulante

Posté : 13 juil. 2006, 02:11
par Invité
Bonjour à tous,
J'ai créé une petite fonction js qui envoie une valeur de liste déroulante sur sélection. La liste est remplie par un tableau.
//fonction javascript
<script language="javascript">
<!-- 
function Choix(valeur) {
  document.location.replace("index.php?valeur=" + valeur );
} 
-->
</script>

//liste déroulante
	  <select name="select1" onChange='Choix(this.value)'>
	  <option value='Tous les modules'>----Tous les modules---</option>
          <?php
		  for ($i=0; $i <count($tab_lst_comp); $i++) {
		  echo "<option value='$tab_lst_comp[$i]'>" . $tab_lst_comp[$i] ."</option>";
		  }
		  ?>
        </select>

Toutes les valeurs de la liste sont bien envoyées dans l'url sauf le 1er item, 'Tous les modules' .

Quand je sélectionne le 1er item, la valeur n'est pas envoyée.
Pourtant tous les autres items sont des phrases du même type que le 1er.

Voyez vous ce que j'ai oublié?

Posté : 13 juil. 2006, 07:46
par Cyrano
Oui,
la valeur n'est envoyée que sur l'évènement onchange. Or, lorsque ta liste est affichée, le premier item est sélectionné par défaut, donc si tu le laisse tel quel, il n'y a pas d'évènement et la fonction JavaScript n'est jamais appelée.

Pour corriger le problème, ajoute une option vide avec par exemple value="-1" avant la boucle qui génère les autres options. Dans ce cas, pour avoir le premier item, tu devras le sélectionner et effectuer le changement qui déclenchera l'appel à la fonction. Dans cette fonction, pour éviter des problèmes possible, ajoute ensuite une alternative

Code : Tout sélectionner

if(ton-option != '-1') {le reste de ta fonction}