IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Erreur à l'affichage des valeurs d'un select multiple


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Par défaut Erreur à l'affichage des valeurs d'un select multiple
    Bonsoir ou plutôt bonjour,

    Je bloque sur la récupération des valeurs d'un select multiple1 alimenté par un autre select multiple2.
    Je veux afficher les valeurs du select multiple2.
    Au clique sur le bouton valider j'ai une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Erreur*: frm.liste_champs is undefined
    Voici le code en entier pour le test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    <html>
         <head>
    		 <script type="text/javascript">
     
         function selection_champs(champs,champs_affiche){
         //on récupère l'endroit sélectionner dans le select source
         selection = champs.selectedIndex;
         if(selection != -1){
         //on déselectionne tous les champs du select de destination où va être placer le(s) champ(s) selectionner
         while(champs_affiche.selectedIndex != -1){
         champs_affiche.options[champs_affiche.selectedIndex].selected = false;
         }
     
         while(champs.selectedIndex > -1){
         if(champs.options[champs.selectedIndex].value == "Id_type_bien"){
         champs.options[champs.selectedIndex] = null;
         champs.form.Id_categorie_bien.options[0].select= true;
         }else{
         //on cherche la place de notre champ
         for(place=0;place<champs_affiche.length;place++){
         if(champs_affiche.options[place].text > champs.options[champs.selectedIndex].text){
         break;
         }
         }
         //on décale tous les champs
         for(i=champs_affiche.length;i>place;i--){
         champs_affiche.options[i] = new Option(champs_affiche.options[(i-1)].text,champs_affiche.options[(i-1)].value);
         }
     
         //on insère le champ selectionner
         champs_affiche.options[place] = new Option(champs.options[champs.selectedIndex].text,champs.options[champs.selectedIndex].value);
         champs.options[champs.selectedIndex] = null;
         champs_affiche.options[place].selected = true;
         }
         }
     
         if(champs.length > 0){
         if(selection >= champs.length ){
         selection = champs.length-1;
         }
         champs.options[selection].selected = true;
         }
         }
         }
     
         function select_all(frm){
         for(i=0;i<frm.liste_champs.length;i++){
         frm.liste_champs.options[i].selected = true;
         }
         frm.liste_champs.name = "liste_champs[]";
     
         for(i=0;i<frm.selection.length;i++){
         frm.selection.options[i].selected = true;
         }
         frm.selection.name = "selection[]";
         }
     
         function priorite_champ(selection,mode){
         if(selection.length < 2 ){return;}
         old_place = selection.selectedIndex;
         if(mode == 'up' && old_place > 0){
         new_place = old_place-1;
         }else if(mode == 'down' && old_place < selection.length-1){
         new_place = old_place+1;
         }
     
         tmp = new Option(selection.options[new_place].text,selection.options[new_place].value);
         selection.options[new_place] = new Option(selection.options[old_place].text,selection.options[old_place].value);
         selection.options[old_place] = new Option(tmp.text,tmp.value);
         selection.options[new_place].selected = true;
         }
     
    		 </script>
    		 </head>
     
    <form name="form1" method="post" action="">
    	<table id="tab1" cellspacing="11">
    			<tr>
    				<td>
    					<select id="liste_champs" multiple size="3" name="liste_champs" multiple OnDblClick="javascript:selection_champs(this.form.liste_champs,this.form.selection)">
    						<option>site1</option>
    						<option>site2</option>
    						<option>site3</option>
    					</select>
    				</td>
    			<td>
    				<input class="bouton" type="button" name="selectionner" value=" >> " OnClick="javascript:selection_champs(this.form.liste_champs,this.form.selection)">
    			</td>
    			<td>
    				<input class="bouton" type="button" name="deselect" value=" << " OnClick="javascript:selection_champs(this.form.selection,this.form.liste_champs)">
    			</td>
    			</td>
    			<td>
    				<select id="selection" name="selection" multiple size="3" class="multiple" OnDblClick="javascript:selection_champs(this.form.selection,this.form.liste_champs)">
    				</select>
    			</td>
    			<td>
    			</td>
    			<td>
    				<input type="button" name="valider" value="valider" onclick="select_all(this)">
    			</td>
    		</tr>
    	</table>
    </form>
    Merci pour votre aide

  2. #2
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Bonjour,

    Vous passez this comme paramètre donc frm n'est pas le formulaire mais le bouton sur lequel on vient de cliquer:


  3. #3
    Membre éclairé Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Par défaut
    Bonjour,

    J'ai remplacé this par le nom du formulaire. J'ai mis une alert pour vérifier ce que je ramène du select multiple2, mais l'alerte n'affiche que "selection[] ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onclick="select_all(form1)"

  4. #4
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Quel est le problème en fait ?

  5. #5
    Membre éclairé Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Par défaut
    Je voudrais récupérer les valeurs du select multiple2.

  6. #6
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Oui, mais... Ca le fait, non ? Votre page fonctionne, me semble-t-il.

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    bonne idée de changer le name en id ... encore faut il le changer partout ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

Discussions similaires

  1. Affichage des valeurs disponibles dans une zone de liste déroulante
    Par azerty dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/06/2007, 12h29
  2. [SQL] Affichage des valeurs nulles dans un Count
    Par at_first dans le forum Access
    Réponses: 4
    Dernier message: 06/03/2007, 11h07
  3. Réponses: 3
    Dernier message: 05/03/2007, 12h54
  4. Affichage des valeurs des variables avec tkprof
    Par hkhan13 dans le forum Oracle
    Réponses: 2
    Dernier message: 04/07/2006, 11h59
  5. Réponses: 8
    Dernier message: 28/03/2006, 16h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo