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 :

Syntaxe récupération données tableau


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de zozoman
    Homme Profil pro
    Futur ex-prof
    Inscrit en
    Décembre 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Futur ex-prof
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 119
    Par défaut Syntaxe récupération données tableau
    Bonjour à tous, j'ai des difficulté dans mes syntaxes :

    J'ai un formulaire : id="formCreerBain" et le tableau suivant :

    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
    for($i=0;$i<10;$i++)
    {
        echo'<tr>';
        echo'   <td class="parametre"><input type="text" name="nomParam['.$i.']" size="15" maxlength="100" id="nomParam['.$i.']"/>';
        echo'       <select name="unite['.$i.']" id="unite['.$i.']">';
        echo'           <option value="12" selected="selected">Unité</option>';
     
        // On liste l'ensemble des unités
        $txtRequete1='SELECT * FROM unite ORDER BY ordreUnite';
        $requete1=mysql_query($txtRequete1);
        while($tableau1=mysql_fetch_assoc($requete1))
        {
            echo'           <option value="'.$tableau1['idUnite'].'">'.$tableau1['symboleUnite'].'</option>';
        }
        echo'       </select>';
        echo'   </td>';
        echo'   <td><input type="text" name="min['.$i.']" id="min['.$i.']" maxlength="10"/></td>';
        echo'   <td><input type="text" name="opt['.$i.']" id="opt['.$i.']" maxlength="10"/></td>';
        echo'   <td><input type="text" name="max['.$i.']" id="max['.$i.']" maxlength="10"/></td>';
        echo'   <td><textarea name="contr['.$i.']" id="contr['.$i.']" rows="2" maxlength="20"/></textarea></td>';
        echo'   <td><textarea name="rem['.$i.']" id="rem['.$i.']" rows="3" maxlength="1000"></textarea></td>';
        echo'</tr>';  
    }

    Je voudrais tester la pertinence des champs donc je récupère la valeur des champs dans des tableaux mais ça ne marche pas, pourriez vous m'indiquer la syntaxe ? J'ai testé ceci qui ne fonctionne pas.

    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
    for(i=0;i<10;i++)
        {
            var inputNomParam=new array();
            var inputMiniParam=new array();
            var inputOptiParam=new array();
            var inputMaxiParam=new array();
            var inputControleParam=new array();
            var inputRemarqueParam=new array();
     
            inputNomParam[i]=document.forms["formCreerBain"].elements["nomParam"][i].value;
            inputMiniParam[i]=document.forms["formCreerBain"].elements["min"][i].value;
            inputOptiParam[i]=document.forms["formCreerBain"].elements["opt"][i].value;
            inputMaxiParam[i]=document.forms["formCreerBain"].elements["max"][i].value;
            inputControleParam[i]=document.forms["formCreerBain"].elements["contr"][i].value;
            inputRemarqueParam[i]=document.forms["formCreerBain"].elements["rem"][i].value;
            alert(inputNomParam[i]);
        }
    Merci d'avance

  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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    heu ... tu redéclares l'array à chaque itération de boucle ...
    tu n'auras donc jamais que le dernier element
    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 !

  3. #3
    Membre confirmé Avatar de zozoman
    Homme Profil pro
    Futur ex-prof
    Inscrit en
    Décembre 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Futur ex-prof
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 119
    Par défaut
    J'ai corrigé cette erreur mais mon problème est la syntaxe.

    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
     
    // inputParam
        var inputNomParam=new array();
        var inputMiniParam=new array();
        var inputOptiParam=new array();
        var inputMaxiParam=new array();
        var inputControleParam=new array();
        var inputRemarqueParam=new array();
        for(i=0;i<10;i++)
        {   
            inputNomParam[i]=document.forms["formCreerBain"].elements["nomParam"][i].value;
            inputMiniParam[i]=document.forms["formCreerBain"].elements["min"][i].value;
            inputOptiParam[i]=document.forms["formCreerBain"].elements["opt"][i].value;
            inputMaxiParam[i]=document.forms["formCreerBain"].elements["max"][i].value;
            inputControleParam[i]=document.forms["formCreerBain"].elements["contr"][i].value;
            inputRemarqueParam[i]=document.forms["formCreerBain"].elements["rem"][i].value;
        }
    Merci pour ta remarque

  4. #4
    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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Tu déclares les attributs name avec des noms de type tableau (name="nom[i]" or tu cherches à récupérer les noms sans les crochets, donc c'est normal que ça ne fonctionne pas car même si ça semble étonnant, pour JavaScript, nom[i] et nom ce n'est pas la même chaine...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    name="opt['.$i.'] id="opt['.$i.']"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    inputOptiParam[i]=document.forms["formCreerBain"].elements["opt["+i+"]"][0].value
    ou plus simple directement par l'id

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElemetnById('opt['+i+']').value

    les [] sont des caractères comme les autres pour les id ou les names



    Attention le fait de mettre les indexes dans les names ou dans les id ne resulte pas en des arrays d'objets seul le fait de mettre les crochets vides donne un array coté serveur !
    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 !

  6. #6
    Membre confirmé Avatar de zozoman
    Homme Profil pro
    Futur ex-prof
    Inscrit en
    Décembre 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Futur ex-prof
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 119
    Par défaut
    Correction effectuée mais le message d'alerte ne s'affiche pas : j'ai testé les deux syntaxes.

    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
     
    function verifierCreerBain() 
    {
        var erreur=0;
        // test input1 : référenceBain
        var input1=document.forms["formCreerBain"].elements["referenceBain"].value;
        if(input1==="")
        {
            document.forms["formCreerBain"].elements["referenceBain"].style.backgroundColor = "#FF0000";
            erreur++;
        }
        else
        {
            input1.innerHTML=document.forms["formCreerBain"].elements["referenceBain"].value;
            document.forms["formCreerBain"].elements["referenceBain"].style.backgroundColor = "#FFFFFF";
        }
     
        if(/^[a-zA-Z]{1,2}\s{0,}-{0,}\/{0,},{0,1}\.{0,}[0-9]{0,2}\s{0,}-{0,}\/{0,},{0,1}\.{0,}[0-9]{0,2}\s{0,}-{0,}\/{0,},{0,1}\.{0,}[0-9]{0,2}\s{0,}$/.test(input1)===false)
        {
           document.forms["formCreerBain"].elements["referenceBain"].style.backgroundColor = "#FF0000";
           erreur++;
        }
        else
        {
            input1.innerHTML=document.forms["formCreerBain"].elements["referenceBain"].value;
            document.forms["formCreerBain"].elements["referenceBain"].style.backgroundColor = "#FFFFFF";
        }
     
    // inputParam
        var inputNomParam=new array();
        var inputMiniParam=new array();
        var inputOptiParam=new array();
        var inputMaxiParam=new array();
        var inputControleParam=new array();
        var inputRemarqueParam=new array();
        for(i=0;i<10;i++)
        {   
            inputNomParam[i]=document.getElemetnById("nomParam["+i+"]").value;
            inputMiniParam[i]=document.getElemetnById("min["+i+"]").value;
            inputOptiParam[i]=document.getElemetnById("opt["+i+"]").value;
            inputMaxiParam[i]=document.getElemetnById("max["+i+"]").value;
            inputControleParam[i]=document.getElemetnById("contr["+i+"]").value;
            inputRemarqueParam[i]=document.getElemetnById("rem["+i+"]").value;
        }
     
        alert(inputNomParam[0]);
     
     
     
        if(erreur===0)
        {
            return (true);
        }
        else
        {
            alert("Certains champs sont incomplets ou erronés");
            erreur1.innerHTML="Certains champs sont incomplets ou erronés";
            return (false);
        }
    }
    je n'ai pas compris pourquoi on a [0] et que l'on créé un tableau 2 dimensions.

    Merci pour vos réponses si rapides

  7. #7
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    j'ai fourché sur mon clavier ???

    .getElemetnById=> getElementById
    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ération donnée tableau
    Par Seb2913 dans le forum Langage
    Réponses: 3
    Dernier message: 12/02/2015, 11h56
  2. Récupération données tableau PHP/HTML
    Par mooky_64 dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 15/05/2010, 14h29
  3. [MySQL] Récupération données MySQL dans un tableau
    Par joebiloute202 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 20/08/2008, 12h09
  4. Récupération de données tableau en PL/SQL
    Par sbonidan dans le forum PL/SQL
    Réponses: 1
    Dernier message: 23/01/2007, 13h23
  5. Réponses: 3
    Dernier message: 29/08/2006, 16h02

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