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 :

Acces element de formulaire sous la forme element[i]


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2004
    Messages : 161
    Points : 142
    Points
    142
    Par défaut Acces element de formulaire sous la forme element[i]
    Bonjour à tous,

    J'ai un formulaire dans lequel une boucle php créé des input.
    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php
    foreach($monchamp as $monelement) {
    ?>
    <tr align="center">
    <td><input type="text" name="nom[<?php echo $monelement['id']; ?>]" value="<?php echo $monelement['valeur']; ?>"></td>
    </tr>
    <?php
    }
    ?>
    J'aimerais dans une fonction javascript pouvoir faire la somme de toutes les valeurs des champ nom[].
    Comment acceder à leur valeur sachant que je ne connait pas le nombre d'élements ?

    Merci d'avance pour vos réponses.

  2. #2
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var collection=document.getElementsByName('nom[]')
    var somme
    for(i=0;i<collection.length;i++){
     somme+=Number(collection[i].value)}
    alert(somme)
    ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2004
    Messages : 161
    Points : 142
    Points
    142
    Par défaut
    Oui, ça fonctionne.
    Merci.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Février 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2004
    Messages : 161
    Points : 142
    Points
    142
    Par défaut
    Finalement, non, ça ne fonctionne pas... Désolée.
    Le message d'erreur est "collection has no properties".
    Vous saavez d'où ça peut venir ?

  5. #5
    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
    <?php
    foreach($monchamp as $monelement) {
    ?>
    <tr align="center">
    <td><input type="text" name="nom[]" value="<?php echo $monelement['valeur']; ?>"></td>
    </tr>
    <?php
    }
    ?>

  6. #6
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    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
    <body>
     <input type='text' name='nom[]' value="1" />
     <input type='text' name='nom[]' value="2" />
     <input type='text' name='nom[]' value="3" />
     <input type='text' name='nom[]' value="4" />
     <input type='text' name='nom[]' value="5 "/>
     <input type='text' name='nom[]' value="6" />
     <input type='text' name='nom[]' value="7" />
    </body>
    <script type='text/javascript'>
    var collection=document.getElementsByName('nom[]')
    alert('il y a '+ collection.length +' inputs')
     var somme=0
     for(i=0;i<collection.length;i++){ somme+=Number(collection[i].value)} 
     alert('la somme de leurs valeurs vaut '  +somme)
     </script>
    Testé sous IE et FFX ...

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Février 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2004
    Messages : 161
    Points : 142
    Points
    142
    Par défaut
    Mais en fait mes input sont plutot du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <body>
     <input type='text' name='nom[1]' value="15" />
     <input type='text' name='nom[2]' value="78" />
     <input type='text' name='nom[3]' value="47" />
     <input type='text' name='nom[4]' value="95" />
     <input type='text' name='nom[5]' value="34 "/>
     <input type='text' name='nom[6]' value="22" />
     <input type='text' name='nom[7]' value="29" />
    </body>
    Ce que je souhaite c'est récupérer la valeur de tous mes élément nom[i] pour en faire la somme...
    C'est possible ça ???

  8. #8
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    ???? ça sert à quoi de mettre l'integer ???

    sinon une possibilité : un teste sur le name
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <script type='text/javascript'>
    var collection=document.getElementsByTagName('input')
     
    var somme=0
     for(i=0;i<collection.length;i++){
     if(collection[i].name.substr(0,4)=="nom["){ somme+=Number(collection[i].value)} }
     alert('la somme de leurs valeurs vaut '  +somme)
     </script>
    peut aussi être fait avec un regExp ...

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Février 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2004
    Messages : 161
    Points : 142
    Points
    142
    Par défaut
    Merci je vais essayer ça.

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

Discussions similaires

  1. Element de formulaire et Name dynamique sous IE
    Par khadir dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 14/08/2008, 11h12
  2. [Formulaire] sous-form dépendant de conditions
    Par guy2004 dans le forum IHM
    Réponses: 11
    Dernier message: 02/04/2006, 10h42
  3. [Struts] Element de formulaire dans une servlet
    Par Adrien09 dans le forum Struts 1
    Réponses: 4
    Dernier message: 17/03/2006, 15h14
  4. Réponses: 10
    Dernier message: 02/02/2006, 10h42
  5. [Formulaire dynamique] Parcours des elements
    Par jacquesh dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/12/2005, 21h49

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