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écupération variable formulaire


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 199
    Par défaut Récupération variable formulaire
    Bonsoir,

    Après plusieurs soirées à me retourner la tête je m'en remet à vos lumières.
    Je vais essayer d'être claire dans mes explications afin d'avoir une solution à mon problème.
    Dans un formulaire de saisie de renseignement d'une société je peux être amené à avoir plusieurs adresse pour une même société. Jusqu'ici pas trop de problème, je sais faire.
    Mon problème vient du fait que ces adresses peuvent être rattachées à un ou plusieurs type de produit, pour cela j'utilise la bibliothèque "Choosen" avec l'attribut "multiple"
    Etant donné que je peux avoir plusieurs adresse ma variable prend la forme de "ma_variable[ i_ligne ][]".
    Problème je n'arrive pas à récupérer en JS le nombre d'élément contenu dans mon tableau "ma_variable[ i_ligne]" et les éléments.

    Si je fais cela pour tenter de connaître le nombre d'élément

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var test = document.forms[ 'form_add_modif_societe' ].elements[ "id_admin_type_produit['1'][]" ].lenght;
    alert( test );
    J'obtiens un "undefined".

    Ci-joint mon code PHP de l'élément du formulaire

    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
    <div class="form-group row">
            <!--
                RATTACHEMENT ADRESSE A UN TYPE DE PRODUIT
            -->
            <label for="sigle_admin_societe" class="col-sm-4 col-md-3 col-form-label col-form-label-sm">Rattaché au type de produit:</label>
            <div class="col-sm-9">
                <select name="id_admin_type_produit[ '1' ][]" data-placeholder="Choix du type de produit rattaché à l'adresse" class="chosen-select" multiple tabindex="6">
    <?php
            $flag_nf_ce_precedent = "";
            for( $i_liste_type_produit = 0; $i_liste_type_produit < count( $tmp_tab_liste_type_produit[ 'id_admin_type_produit' ] ); $i_liste_type_produit++ )
            {
                $tmp_liste_id_admin_type_produit            = $tmp_tab_liste_type_produit[ 'id_admin_type_produit'          ][ $i_liste_type_produit ];
                $tmp_liste_libelle_admin_type_produit       = $tmp_tab_liste_type_produit[ 'libelle_admin_type_produit'     ][ $i_liste_type_produit ];
                $tmp_liste_flag_nf_ce_admin_type_produit    = $tmp_tab_liste_type_produit[ 'flag_nf_ce_admin_type_produit'  ][ $i_liste_type_produit ];
     
                if( $tmp_liste_flag_nf_ce_admin_type_produit == "0" )
                {
                    $tmp_liste_libelle_nf_ce_admin_type_produit = "NF";
                }
     
                if( $tmp_liste_flag_nf_ce_admin_type_produit == "1" )
                {
                    $tmp_liste_libelle_nf_ce_admin_type_produit = "CE";
                }
     
                if( $flag_nf_ce_precedent != $tmp_liste_flag_nf_ce_admin_type_produit && $i_liste_type_produit == 0 )
                {
    ?>
                    <optgroup label="<?php echo $tmp_liste_libelle_nf_ce_admin_type_produit; ?>">
    <?php
                }
     
                if( $flag_nf_ce_precedent != $tmp_liste_flag_nf_ce_admin_type_produit && $i_liste_type_produit != 0 )
                {
    ?>
                    </optgroup>
                    <optgroup label="<?php echo $tmp_liste_libelle_nf_ce_admin_type_produit; ?>">
    <?php
                }
    ?>
                        <option value="1_<?php echo $tmp_liste_id_admin_type_produit; ?>">
                            <?php echo $tmp_liste_libelle_admin_type_produit; ?> - <?php echo $tmp_liste_libelle_nf_ce_admin_type_produit; ?>
                        </option>
    <?php
            $flag_nf_ce_precedent = $tmp_liste_flag_nf_ce_admin_type_produit;
        }
    ?>
                    </optgroup>
                </select>
            </div>
        </div>
    Si quelqu'un pourrai m'aider ce serait Tip top ^^

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    .lenght ?
    Non.

    .length
    Oui.


  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 199
    Par défaut
    Bonsoir,

    Merci, mais quel c**** que je suis Quand on passe trop de temps sur un code on y vois plus clair
    Bon ça me retourne bien quelque chose mais c'est complètement incohérent, en effet que je sélectionne 1, 2, 3 ou n élément cela m'affiche toujours "30" (qui semble correspondre à l'ID de mon dernier élément) dans mon "alert" au lieu de m'indiquer le nombre d'élément sélectionné.

    Merci

  4. #4
    Membre extrêmement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par défaut
    un exemple vaut mieux que milles maux
    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
    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
    <!DOCTYPE html>
    <html lang="fr">
    <head>
      <meta charset="UTF-8">
      <title> Select multiple </title>
      <script>
        function JS_inits() {
     
          var ElemsRep = document.getElementById("elems_Choisis");
     
          document.getElementById("BT_Choisis").onclick = function () {
     
            let ListeChoisis = Array.from(document.querySelectorAll('#dino-select option:checked')).map((el) => el.value);
     
            ElemsRep.innerHTML = (ListeChoisis.length > 0) ? ListeChoisis.join(" / ") : "Aucune Selection";
     
          }; // BT_Choisis click
     
        }; // JS_inits()
      </script>
    </head>
     
    <body onload="JS_inits();">
      <br>
      <br>
      <select id="dino-select" multiple="multiple" size="8">
        <optgroup label="Theropods">
          <option>Tyrannosaurus</option>
          <option>Velociraptor</option>
          <option>Deinonychus</option>
        </optgroup>
        <optgroup label="Sauropods">
          <option>Diplodocus</option>
          <option>Saltasaurus</option>
          <option>Apatosaurus</option>
        </optgroup>
      </select>
      <br>
      <br>
      <button id="BT_Choisis">Voir la sélection</button>
      <br>
      <br>
      <div id="elems_Choisis">Aucune Selection</div>
     
    </body>
    </html>

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 199
    Par défaut
    Bonjour

    Impecable ! Merci psychadelic.
    J'ai pu adapter ton exemple à mon code.
    Je viens de me rendre compte que j'avais déjà rencontré ce genre de problème et j'ai oublié qu'il fallait utiliser "checker" pour connaitre les valeurs sélectionnées dans un "multiple".
    Merci encore d'avoir pris le temps pour m'aider.

    Bonne journée.

    Nicolas

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

Discussions similaires

  1. Problème récupération variable formulaire
    Par kcirtap.tim dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 15/08/2015, 23h32
  2. [MySQL] récupération variable formulaire recherches multiples
    Par Evelyne31 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 30/10/2012, 20h01
  3. Réponses: 4
    Dernier message: 27/06/2008, 09h42
  4. Récupération variable d'un formulaire
    Par chrgui dans le forum Langage
    Réponses: 4
    Dernier message: 15/01/2007, 15h15
  5. Réponses: 5
    Dernier message: 08/10/2006, 15h28

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