Javascript + Liste déroulante <select>

Javascript + Liste déroulante <select> - HTML/CSS - Programmation

Marsh Posté le 22-11-2006 à 17:55:01    

Bonjour à tous :hello:,
 
J'ai une question concernant du Javascript : dans ma page j'ai en fait une liste déroulante générée a partir d'une base de données.
 
Cette liste est du type  
<SELECT name="" onchange="javascript:this.form.submit();" >  
<OPTION>....
</SELECT>
 
J'aurais aimé savoir si le javascript permet de récupérer la taille de cette liste déroulante. Peu importe la manière si je dois d'abord parcourir tous les éléments puis incrémenter un compteur ou s'il y a une fonction spécifique.
 
Parce qu'en fait je voudrais trier les éléments de cette liste par ordre alphabetique ce que la requete ne permet pas de faire puisque je fais un order_by indexXX qui lui fait ensuite référence à un fichier de traduction qui créer la liste. Comme selon les langues les traductions changent, est-il donc possible de trier cette liste en javascript. (tout d'abord en récupérant la taille).
 
Merci par avance.


Message édité par TomZ le 22-11-2006 à 17:57:03
Reply

Marsh Posté le 22-11-2006 à 17:55:01   

Reply

Marsh Posté le 22-11-2006 à 17:56:00    

C'est pas bien de faire comme ça, il faut un bouton submit pour ceux qui naviguent au clavier ou ceux qui ont le focus sur la select.

Reply

Marsh Posté le 22-11-2006 à 17:58:34    

Le problème est que c'est de l'existant donc je dois m'adapter à ce qui est fait.
 
Ya t-il donc une solution?

Reply

Marsh Posté le 22-11-2006 à 18:00:41    

En comptant le nombre d'options, avec un getElementsByTagname + un length

Reply

Marsh Posté le 22-11-2006 à 18:03:04    

Pourrais tu être plus précis en me donnant un exemple s'il te plaît.
Merci d'avance

Reply

Marsh Posté le 22-11-2006 à 18:06:16    

Déjà rajoute un id sur ton select, genre "tagada", ensuite faut faire genre :

var nombreOption = document.getElementById("tagada" ).getElementsByTagname('option').length


 
J'espère que c'est pour un intranet :sweat:

Reply

Marsh Posté le 22-11-2006 à 18:11:01    

pour le coup j'aurais pas fait de getElementsByTagName mais direct utilisé le tableau options:

Code :
  1. var nombreOption = document.getElementById("tagada" ).option.length

Reply

Marsh Posté le 22-11-2006 à 18:11:19    

ah ouais [:dawa]

Reply

Marsh Posté le 22-11-2006 à 18:36:19    

Voilà j'ai mon code :

Code :
  1. <html>
  2. <head>
  3. <title>Test de tri</title>
  4. <script language="javascript">
  5. function test()
  6. {
  7.   var nombreOption = document.getElementById("liste" ).option.length
  8.   alert(nombreOption);
  9. }
  10. </script>
  11. </head>
  12. <body>
  13. <select name="liste_test" onChange="test()" id="liste">
  14.  <option name="1" value="Bonjour">Bonjour
  15.  <option name="2" value="Au revoir">Au revoir
  16.  <option name="3" value="Test">Test
  17.  <option name="4" value="Vitesse">Vitesse
  18. </select>
  19. </body>
  20. </html>


 
Mais ile me sort le message d'erreur suivant :  

Code :
  1. Erreur : document.getElementById("liste" ).option has no properties
  2. Ligne : 42


 
Avez vous une idée ?


Message édité par TomZ le 22-11-2006 à 18:38:08
Reply

Marsh Posté le 22-11-2006 à 18:48:32    

Visiblement  j'ai fait des tests

Code :
  1. var nombreOption = document.getElementById("liste" ).length

suffit
 
Merci à tous

Message cité 1 fois
Message édité par TomZ le 22-11-2006 à 18:48:50
Reply

Marsh Posté le 22-11-2006 à 18:48:32   

Reply

Marsh Posté le 22-11-2006 à 18:49:39    

Seconde question peut être. Comment stocker tous les éléments de la liste dans un tableau à une dimension.
 
Tout cela dans le but de trier la liste déroulante en javscript. Est-il vraiment possible de le faire?


Message édité par TomZ le 22-11-2006 à 18:58:41
Reply

Marsh Posté le 22-11-2006 à 18:58:27    

TomZ a écrit :

Visiblement  j'ai fait des tests

Code :
  1. var nombreOption = document.getElementById("liste" ).length

suffit
 
Merci à tous


Pour l'erreur problème, tu devrais commencer par regarder dans la documentation (HTMLSelectElement), qui spécifie que c'est options, pas option.

Reply

Marsh Posté le 22-11-2006 à 19:20:55    

Merci pour le prblème c'et réglé.
 
Cependant avant de me lancer dans n'importe quoi j'aurais aimé savoir s'il était possible de ré-organiser une liste déroulante (générée à partir d'une base de données) avec du Javascript.
 
Merci par avance

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed