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 :

Formulaire avec nom en tableau et javascript


Sujet :

JavaScript

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Formulaire avec nom en tableau et javascript
    bonjour,

    J'ai un formulaire qui est généré en ajax suivant une base de donnée et qui génère un code type :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form>
    <input type="text" name="test[]"/> X fois
    </form>
    J'arrive bien a récupere le tableau derrière en php sans soucis.. Aujourd'hui, j'ai besoin de pouvoir faire une concaténation de tous ces champs en javascript avant un envois sur un evenement onChange:

    j'ai tenté la syntaxe suivante :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <script language="javascript">
    function concat () {
        var concatval='';
    var tabval=document.getElementsByName('test');
    for (vari=0; i<tabval.length;i++) {
        concatval=concatval+tabval[i].value;
    }
    alert(concatval);
    }
    </script>
    <form>
    <input type="text" name="test[]" onChange="concat()" />
    </form>

    et il ne m'affiche rien dans mon alert... comment puis-je recuperer toutes les valeures des champs avec un name="test[]" en javascript ?

    Merci d'avance...

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (vari=0; i<tabval.length;i++)
    Un seul espace vous manque et tout est erroné...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (var i=0; i<tabval.length;i++)

  3. #3
    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 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    EN fait c'est surtout que pour js les [] dans le name sont des caractères comme les autres et ne sont pas générateur de collection ou d'array comme en php


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var tabval=document.getElementsByName('test[]');

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    j'ai finalement fait autrement hier soir et ca a marché, je testerais vos solutions aujourd'hui, mais voici comment j'ai fini par faire...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function concat() {
    var valeurs='';
    var form = document.forms.formulaire;
    for (var i=0 ; i<= form.length-1 ; i++){
     if ((form[i].name=='test[]') && (form[i].value.length>0)) 
    {valeurs=valeurs+form[i].value+'|';}
    }
    alert(valeurs);
    }
    Je sais que ce n'est aps aussi propre, mais au moins j'ai une solution fonctionnelle si je n'arrive pas a me servir de getElementsByName

    Merci

  5. #5
    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 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    oui ou pourquoi faire compliqué quand on peut faire simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var tabval=document.getElementsByName('test[]');
    te retourne directement la collection voulue ...

Discussions similaires

  1. [POO] Formulaire avec du php et du javascript HTTPXmlR
    Par drwriggles dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 22/08/2008, 14h19
  2. Champ de formulaire avec nom de la forme a[b][c][x]
    Par Baldurien dans le forum Struts 2
    Réponses: 5
    Dernier message: 01/03/2007, 17h47
  3. PB controle formulaire avec tableau à double entrées
    Par Poutchou dans le forum Général JavaScript
    Réponses: 36
    Dernier message: 23/03/2006, 14h37
  4. Impossible d'envoyer un formulaire avec javascript
    Par Mimi Bulles dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 14/11/2005, 20h37
  5. accéder à un contrôle de formulaire avec un nom de tableau
    Par jibouze dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 30/06/2005, 23h57

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