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érer en js un tableau html issu d'un formulaire


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 44
    Par défaut récupérer en js un tableau html issu d'un formulaire
    Bonjour,
    j'aimerais valider en javascript un champ de formulaire qui est en fait un tableau. Il s'agit d'une liste d'articles et il y a un champ input pour la quantité à commander.
    mes champs s'appellent qte[1], qte[2] etc.
    J'aimerais dans ma validation vérifier que la somme des qtés est différente de 0, mais je n'arrive pas à récupérer ces champs :
    if(document.formCde.qte.value == "0") ne donne rien
    if(document.formCde.qte[1].value == "0") ne donne rien
    Comment procéder?
    en php c'est facile. J'ai :
    $qte = $_POST["qte"]; puis je travaille $qte[$i] ....
    Quelqu'un peut-il m'aider?

  2. #2
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 44
    Par défaut
    Une petite piste me serait bien utile

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Tu peux t'inspirer de ceci
    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
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <script>
    function tester()
    {
        var lst = document.getElementsByName("Qte");
        for (var i = 0; i < lst.length; i++)
        {
            alert(lst[i].value);
        }
    }
    </script>
    </head>
     
    <body>
    <form>
        Quantité 1 <input type="text" name="Qte"/><br>
        Quantité 2 <input type="text" name="Qte"/><br>
        <br>
        <input type="button" value="Tester" onclick="tester()"/>
    </form>
    </body>
    </html>
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 44
    Par défaut
    ça marche bien en javascript, quand comme toi, je mets dans chaque balise input : name="Qte".
    Mais ça ne fonctionne plus avec le php.
    Dans mon ancien système, je fais un boucle de lecture de mes articles et dans chaque balise j'ai : name = qte['.$i.'] (je passe par une variable intermédiaire). Et je peux récupérer toutes mes quantités en php.
    Par contre si je mets seulement name="Qte", je ne récupère qu'une seule quantité.

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Si tu as à disposition le nombre d'éléments, tu peux adapter comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for (var i = 0; i < nbrElem; i++)
    {
       var champ = document.forms[0].elements["qte["+ i + "]"];
       alert(champ.value);
    }
    forms[0] si c'est le premier formulaire de ta page, on peut également passer par un nom si tu en as précisé un dans la balise <form>
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <form name="MonFormulaire">
    ...
    </form>
    L'adaptation serait alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for (var i = 0; i < nbrElem; i++)
    {
       var champ = document.MonFormulaire.elements["qte["+ i + "]"];
       alert(champ.value);
    }
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  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 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
    si tes champs se nomment ce qui te permets de recupérer un tableau coté serveur, js lui ne reconnait pas de tableau.
    en fait les crochets[] sont pour js ces caractères comme les autres

    Pour recupérer un tableau des valeurs coté client il va falloir boucler sur la collection
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElemntsByName('qte[]')
    comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var tabValues=new Array();
    var tabElts=document.getElemntsByName('qte[]');
    var i=0
    while(tabElts[i++]){
    tabValues.push(tabElts[i].value;}
    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 !

  7. #7
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par sahuni Voir le message
    Dans mon ancien système, je fais un boucle de lecture de mes articles et dans chaque balise j'ai : name = qte['.$i.']
    Je pense que c'est plutôt ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <input ... name="qte[0]"/>
    <input ... name="qte[1]"/>
    <input ... name="qte[2]"/>
    ...
    donc le "document.getElementsByName('qte[]')" ne va pas fonctionner...
    Bien sûr, c'est à sahuni de dire ce qui est
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  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 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
    quel interet d'avoir un name qte[$i] ??? tu ne recupères pas d'array coté serveur ..
    a moins d'avoir qte[$i][]
    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 !

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

Discussions similaires

  1. Récupèrer le contenu d'un tableau html
    Par solicel dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/07/2009, 16h37
  2. [DOM] Récupérer valeur dans un tableau html
    Par ViRouF dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 08/10/2008, 17h48
  3. récupérer le numéro de ligne d'un tableau html
    Par hartecel dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 07/10/2008, 09h25
  4. Récupérer un tableau html multidimensionnel associatif sous javascript
    Par Mormegil dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 16/04/2007, 17h47
  5. Réponses: 3
    Dernier message: 10/11/2006, 16h59

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