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 :

Récuperer par POST une liste d'option dans un select


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 183
    Points : 96
    Points
    96
    Par défaut Récuperer par POST une liste d'option dans un select
    bonjour,

    Je sollicite votre aide car j ai un soucie que je ne comprend pas trop et que je n arrive pas a résoudre.

    J ai un champs que je remplie et que je bascule dans une liste, mais au final en imaginant 3 texte différant, je ne récupère que le dernier de la liste quand je valide.

    voici dans quoi je récupère la liste : (le code complet est plus bas)
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <SELECT name="liste" multiple="true" style="width:200px;height:200px;">
     
    </SELECT>

    Il me semble que pour que ca fonctionne je devrais mettre name="liste[]" au lieux de name="liste" mais si je fait ca , cela ne fonctionne plus, meme ci je faite de meme dans le javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    form.liste.options[form.liste[].options.length]=o;
    au lieux de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    form.liste.options[form.liste.options.length]=o;
    Ci je vais comme ca, cela fonctionne tres bien :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <SELECT name="liste[]" multiple="true" size="30" style="width:200px;height:200px;">
    <option value="lien 1">lien 1</option>
    <option value="lien 2">lien 2</option>
    <option value="lien 3">lien 3</option>
    </SELECT>

    Mais faire comme çà n est pas le but.

    tout fonctionne très bien sauf au final pour récupérer toute la liste dans le select ajouter automatiquement au basculement. pourriez vous me dire comment faire.

    je vous montre la portion de code pour les testes complet :

    Le script JAVASCRIPT :
    Code java-script : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script language="javascript" type="text/javascript">
    	function Ajouter(form)
    	{
    		var o = new Option(form.valeur.value);
     
    		form.liste.options[form.liste.options.length]=o;		
    	}
     
    </script>

    Le PHP pour recuperer les info de la liste qui fonctionne pas :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    if(isset($_POST['liste'])) {
     
    	foreach(($_POST['liste']) as $val)
    	{
    		echo "Liste : ".$val."<br/>";
    	}
     
    }
    ?>

    Le formulaire HTML d'envoi de la liste :
    Code html : 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
    <form action="" name="formulaire" method="POST">
    		<table align="center" width="95%" border="1">
    			<tr>
    				<td width="" align="center">				
    					<INPUT type="text" class="texte" name="valeur" size="30" value="texte2"> 					
    				</td>
    				<td width="" align="center">			
    					<INPUT type="button" class="submit" Value="Ajouter " onClick="Ajouter(this.form)">							
    				</td>
    				<td width="250" height="250" rowspan="3" align="center">
    					<SELECT name="liste" multiple="true" style="width:200px;height:200px;">
     
    					</SELECT>					
    				</td>				
    			</tr>			
    		</table>
    		<br/><center><input type="submit" class="submit" value="Valider" ></center>			
    </form>

    Donc reste plus qu'a récupérer toute le contenue de cette liste et je compte sur vous et vos lumière de génie .

    Je suppose que je poste au bonne endroits mais je suis pas sur, veuillez m excuser ci ce n est pas le cas.

    Je vous remercie beaucoup pour l aide que vous m apporterais.

  2. #2
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <SELECT name="liste[]" multiple="true" style="width:200px;height:200px;">
     
    </SELECT>
    Tu post un tableau de donnée (en l'occurrence plusieurs options ) donc tu dois impérativement nommé avec un tableau
    est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes

    Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 183
    Points : 96
    Points
    96
    Par défaut
    Bas oui c est bien ce que j ai écrit dans mon message (j avais essayer çà), mais ci je fait çà mon script javascript ne fonctionne plus. je veux dire que si e veux ajouter un texte dans la liste le bouton "ajouter" ne fonctionne plus.

    je fait comment la dedans pour que liste soit en liste[] :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    form.liste.options[form.liste.options.length]=o;

  4. #4
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('lite[]')
    ? en mettant l'id adéquat bien entendu
    est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes

    Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 183
    Points : 96
    Points
    96
    Par défaut
    Non çà fonctionne pas ou je me debrouille mal, je suis assez débutant en javascript, si vous aviez des exemples plus complet ...

    je le met ou ce code, il ne m ajouteras pas de texte dans ma liste ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('liste[]')

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 183
    Points : 96
    Points
    96
    Par défaut
    Bon bas j ai essayer plusieurs chose est çà marche pas.

    Pour ceux qui voudrais essayer avec le code complet et me corriger le problème je lui en serais très reconnaissant : merci d'avance.

    Code php : 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
    <script language="javascript" type="text/javascript">
    	function Ajouter(form)
    	{
    		var o = new Option(form.valeur.value);		
    		form.liste.options[form.liste.options.length]=o;		
    	}
     
    </script>
    <?php
    if(isset($_POST['liste'])) {
     
    	foreach(($_POST['liste']) as $val)
    	{
    		echo "Liste : ".$val."<br/>";
    	}
     
    }
    ?>
    <form action="" name="formulaire" method="POST">
    		<table align="center" width="95%" border="1">
    			<tr>
    				<td width="" align="center">				
    					<INPUT type="text" class="texte" name="valeur" size="30" value="texte2"> 					
    				</td>
    				<td width="" align="center">			
    					<INPUT type="button" class="submit" Value="Ajouter " onClick="Ajouter(this.form)">							
    				</td>
    				<td width="250" height="250" rowspan="3" align="center">
    					<SELECT name="liste" multiple="true" style="width:200px;height:200px;">
     
    					</SELECT>					
    				</td>				
    			</tr>			
    		</table>
    		<br/><center><input type="submit" class="submit" value="Valider" ></center>			
    </form>

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 183
    Points : 96
    Points
    96
    Par défaut
    Personne n'a d idée ? c est la panne technique là

  8. #8
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    document.formulaire.elements["liste[]"]


    WHITE / BLACK OUT (sélectionne le message)

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 183
    Points : 96
    Points
    96
    Par défaut
    WHITE / BLACK OUT (sélectionne le message)
    J ai pas compris, je demande des exemples qui fonctionne pas des mots qui veule rien dire pour moi. çà m aide pas du tout vos réponse.

    le message j ai de quoi le sélectionner (toute la liste) avec un bouton.

    rien a voir avec ce que je veux faire. personne n'a d'idée qui serais plus concret.

  10. #10
    Membre du Club
    Homme Profil pro
    Développeur JAVA/PHP
    Inscrit en
    Mai 2008
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur JAVA/PHP

    Informations forums :
    Inscription : Mai 2008
    Messages : 61
    Points : 52
    Points
    52
    Par défaut
    Si j'ai bien compris, tu souhaites que quand tu cliques sur le bouton "Ajouter", une fonction ajoute la valeur du champ dans la liste à sélection multiple "liste" en bas, puis sur l'envoi de ton form, tu veux récupérer tout ça en php...

    C'est ça?

    Je sais, je résume un peu, mais j'ai un peu de mal à comprendre la finalité de ce que tu veux faire.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 183
    Points : 96
    Points
    96
    Par défaut
    Oui c est exactement ca, recuperer toute la liste en php après validation. En faite çà génère un menu avec des liens au final.

    le truc c est que pour le moment je ne recuperer que le dernier value de la liste et pas tout.

    pour resumer ci je fait ca name="liste[]" , ca fonctionne plus pour ajouter a la liste (avec le bouton ajouter)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <SELECT name="liste[]" multiple="true" style="width:200px;height:200px;">
     
    </SELECT>
    et je ne c est pas comment faire en javascript.

    Merci

  12. #12
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 060
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 060
    Points : 1 357
    Points
    1 357
    Par défaut
    Bonjour,

    Pour commencer :
    • ceci est obslolète : 'language="javascript"' ;
    • ceci est incorrect : 'multiple="true"'. Si c'est du html, c'est tout simplement 'multiple' ; si c'est du xhtml c'est : 'multiple="multiple".

    Pour le reste :
    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
    <?php
      if(isset($_POST['liste']))
      {
        foreach(($_POST['liste']) as $val)
        {
          echo "Liste : " . $val . "<br/>";
        }
      }
    ?>
    <html>
      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <script type="text/javascript">
          function Ajouter(form)
          {
            with (form)
            {
              var src = valeur;
              //-- si l'on ajoute une valeur vide, on ne fait rien -----------------
              if (src.value == '')
                return;
     
              var dest = elements['liste[]'];
            }
            var indice = dest.length;
     
            var o = new Option(src.value, src.value);
            dest.options[indice] = o;
            src.value = '';
          }
     
          function selectAll(form)
          {
            var dest = form.elements['liste[]'];
            var indice = dest.length;
            //-- si l'on essaie de soumettre le formulaire sans option -------------
            //-- la soumission ne se fait pas --------------------------------------
            if (indice == 0)
            {
              alert('aucune option sélectionnée');
              return false;
            }
            var i = 0;
            while (i < indice)
            {
              dest[i].selected = 'selected';
              i ++;
            }
            return true;
          }
        </script>
      </head>
      <body>
        <form action="" name="formulaire" method="POST" onsubmit="return selectAll(this)">
          <table align="center" width="95%" border="1">
            <tr>
              <td width="" align="center">
                <INPUT type="text" class="texte" name="valeur" size="30" value="">
              </td>
              <td width="" align="center">
                <INPUT type="button" class="submit" Value="Ajouter " onClick="Ajouter(this.form)">
              </td>
              <td width="250" height="250" rowspan="3" align="center">
                <SELECT name="liste[]" multiple style="width:200px;height:200px;">
                </SELECT>
              </td>
            </tr>
          </table>
          <br/>
          <center>
            <input type="submit" class="submit" value="Valider" >
          </center>
        </form>
      </body>
    </html>

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Février 2008
    Messages
    183
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2008
    Messages : 183
    Points : 96
    Points
    96
    Par défaut
    Je te remercie beaucoup, çà fonctionne impeccable

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/02/2009, 12h57
  2. Récuperer la valeur d'une liste modifiable créée dans un onglet excel
    Par dimitrios dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/12/2007, 11h34
  3. Utiliser une liste de valeur dans un select
    Par in dans le forum Oracle
    Réponses: 13
    Dernier message: 09/01/2007, 11h33
  4. Réponses: 6
    Dernier message: 12/12/2006, 18h58
  5. tri par rapport à une liste dans la clause where
    Par umbakrail dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 19/07/2006, 11h32

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