// JavaScript Document var Liste = function(ps_id) { this.iselect_liste = getelement(ps_id); } Liste.prototype.element_selectionne = function () { if( this.element_selectionne_existe() ) return this.iselect_liste.options[this.iselect_liste.selectedIndex]; else return null; } Liste.prototype.element_selectionne_existe = function () { return (this.iselect_liste.selectedIndex >= 0); } Liste.prototype.valeur_selectionnee = function () { return this.element_selectionne().value; } Liste.prototype.supprimer_element_selectionne = function () { this.iselect_liste.options[this.iselect_liste.selectedIndex] = null; } Liste.prototype.ajouter_element = function (ps_valeur,ps_libelle) { this.iselect_liste.options[this.iselect_liste.length] = new Option(ps_libelle,ps_valeur); } Liste.prototype.supprimer_element = function( pi_position ) { this.iselect_liste.remove( pi_position ); } Liste.prototype.vider = function() { while( this.iselect_liste.length > 0 ) this.supprimer_element( 0 ); } /** * Ajoute plusieurs éléments à la liste avec le tableau associatif fourni en argument * le tableau est considéré associatif est ses clefs sont utilisées pour l'attribut value. * Les libellés sont renseignés avec les valeurs du tableau * ex : * * @param array psa_clefs_valeurs tableau de clefs/valeurs (associatif) */ Liste.prototype.ajouter_elements = function( psa_clefs_valeurs ) { for( ls_clef in psa_clefs_valeurs ) { this.ajouter_element( ls_clef, psa_clefs_valeurs[ls_clef] ); } } /** * Ajoute plusieurs éléments à la liste avec le tableau non associatif fourni en argument * les attributs value et les libellés sont affectés avec les valeurs du tableau * ex : * * @param array psa_valeurs tableau de valeurs */ Liste.prototype.ajouter_elements_sans_cles = function( psa_valeurs ) { for( li=0 ; li < psa_valeurs.length ; li++ ) { this.ajouter_element( psa_valeurs[li], psa_valeurs[li] ); } } /** * Vide puis ajoute des éléments à la liste avec le tableau associatif fourni en argument * @see ajouter_elements pour les détail sur l'ajout * @param array psa_clefs_valeurs tableau de valeurs ou de clefs/valeurs (associatif) */ Liste.prototype.remplir = function( psa_clefs_valeurs ) { this.vider(); this.ajouter_elements( psa_clefs_valeurs ); }