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 des valeurs d'INPUTs créés dynamiquement ?


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 327
    Par défaut Récupération des valeurs d'INPUTs créés dynamiquement ?
    Salut tout le monde,

    alors là, je ne comprends plus rien.
    Je créé dynamiquement des INPUTs, mais impossible d'en récupérer les valeurs !

    Je suis sur que je passe à côté de quelque chose de tout bête, mais je tourne en rond depuis le début de l'après-midi...

    Je vous mets une partie du code :

    Création des champs :
    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
    61
    62
     
    ...
    ...
    ...
    // CREATION DES CHAMPS
    G_NbINPUT = G_NbINPUT + 1;
    WId1 = "Input" + G_NbINPUT;
    WLigne = "<tr><td width='"+WTaille1+"'>";
    WLigne = WLigne + WLib1 + "</td><td align='right' width='"+WTaille2+"'>";
    if (WElement1 != "INPUT")
    {
    	WLigne = WLigne + "Erreur dans le fichier XML sur " + WNomChamp1 + G_CrLf + "INPUT Number obligatoire dans cette section.";
    }
    else
    {
    	WLigne = WLigne + "<input type='"+WType1+"' id='" + WId1 + "' size='"+WSize1+"' class='"+WClasse1+"' value='"+WInit1+"' ";
    	WLigne = WLigne + "placeholder='"+WId1+"' ";
    	if (WType1 == "number")
    	{
    		WLigne = WLigne + "min='"+WVal_Min1+"' max='"+WVal_Max1+"' ";
    		WLimite = "Numbers"; // Indique le type de caractères autorisés dans les INPUTs
    		WOnKeyPress = "onkeypress='return inputLimiter(event,WLimite)'"; // Seuls les chiffres sont autorisés
    		WLigne = WLigne + WOnKeyPress;
    	};
    	WLigne = WLigne +" />";
    };
    WLigne = WLigne + "</td>";
    if (WLib2 != "")
    {
    	G_NbINPUT = G_NbINPUT + 1;
    	WId2 = "Input" + G_NbINPUT;
    	WLigne = WLigne + "<td width='"+WTaille1+"'>";
    	WLigne = WLigne + WLib2 + "</td><td align='center' width='"+WTaille2+"'>";
    	if (WElement2 != "INPUT")
    	{
    		WLigne = WLigne + "Erreur dans le fichier XML sur " + WNomChamp2 + G_CrLf + "INPUT Number obligatoire dans cette section.";
    	}
    	else
    	{
    		WLigne = WLigne + "<input type='"+WType2+"' id='" + WId2 + "' size='"+WSize2+"' class='"+WClasse2+" 'value='"+WInit2+"' ";
    		WLigne = WLigne + "placeholder='"+WId2+"' ";
    		if (WType2 == "number")
    		{
    			WLigne = WLigne + "min='"+WVal_Min2+"' max='"+WVal_Max2+"' ";
    			WLimite = "Numbers"; // Indique le type de caractères autorisés dans les INPUTs
    			WOnKeyPress = "onkeypress='return inputLimiter(event,WLimite)'"; // Seuls les chiffres sont autorisés
    			WLigne = WLigne + WOnKeyPress;
    		};
    		WLigne = WLigne + " />";
    	};
    	WLigne = WLigne + "</td></tr>";
    }
    else
    {
    	WTaille = WTaille1 + WTaille2;
    	WLigne = WLigne + "<td colspan='2' width='"+WTaille+"'>&nbsp;</td></tr>";
    	WLigne = WLigne + "</td></tr>";
    };
    $('#'+WNomTAB).append($(WLigne));
    ...
    ...
    ...
    Contrôle des champs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    // CONTROLE DES CHAMPS
    ...
    // Controle des autres champs
    i = 0
    while (i <= G_NbINPUT - 1)
    {
    	WId = "Input" + (i + 1);
    	WVal = window.document.getElementById(WId).value;
    // test de validité du champ à insérer ici.
    	i = i + 1;
    };
    ...
    Où est-ce que je fais une erreur ?

    PS : Je ne sais pas si ça a une importance, le HTML commence par un Window_onload() suivit tout de suite du FORM

  2. #2
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    tu appelle quoi créer dynamiquement ??
    car là ça n'a pas l'air d'être dynamique

    j'ai l'impression que tu confond générer dynamiquement une page côté serveur

    et modifier dynamiquement une page côté client.
    Ici c'est le forum Javascript et ça se passe côté client

    donc deux cas
    1) ton problème est un problème est dans javascript comment récupéré des éléments d'une page
    et tu est dans le bon forum
    mais dans ce cas poste le HTML de ton navigateur et pas le code de ton serveur. le javascript ignore le code serveur et nous ne pouvons pas à coup sur déduire ce source HTML du code serveur.

    2) ton problème est de générer correctements un source HTML sur le serveur et tu n'est pas dans le bon forum

    A+JYT

  3. #3
    Membre éprouvé Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 327
    Par défaut
    Non, non, il n'y a pas de serveur concerné, c'est donc bien uniquement du JAVASCRIPT.

    Ce que je veux dire par "dynamiquement", c'est que c'est le code Javascript qui créé les lignes de la tables et INPUTs dans les cellules.
    J'attribue le nom de chaque champs "Input" par le code "Inputn" ou n varie de 1 à 94 et je construis la ligne qui permet de créer le champs "<input blablabla...>" ; c'est ensuite le code JQuery "$('#'+WNomTAB).append($(WLigne));" qui permet donc d'afficher la ligne sur la page.

    Mais comme je l'ai dit, je n'arrive pas à récupérer les valeurs saisies et je ne trouve pas où ça cloche ?

    C'est dans la boucle suivante que je voudrai récupérer toutes les valeurs pour les traiter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    i = 0
    while (i <= G_NbINPUT - 1)
    {
       WId = "Input" + (i + 1);
       WVal = window.document.getElementById(WId).value;
    			
    alert(WId + G_Crf + WVal);			
    			
       i = i + 1;
    };

  4. #4
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2010
    Messages : 34
    Par défaut
    Hello,

    Comme le demande sekaijin, ce serait bien de poster le HTML (après l'insertion des lignes).

    Sinon es que l’exécution du script passe bien dans la boucle? (boucle qui me fait un peu mal aux yeux d’ailleurs)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(var i=1; i<G_NbINPUT; i++){
       WId = "Input" + i;
       WVal = window.document.getElementById(WId).value;		
       alert(WId + G_Crf + WVal);			
    };
    La console de ton navigateur affiche une erreur ou pas?

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    Bonjour,

    Si c'est lors du POST de ton formulaire que tu ne récupères pas les valeurs côté serveur c'est tout à fait normal car je n'ai pas vu d'attribut "name" dans ton code de déclaration des tags "input".

  6. #6
    Membre éprouvé Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 327
    Par défaut
    Effectivement, je n'ai pas mis de "name", pensant que le "id" suffisait, puisque je fais bien un getElementById et non un getElementByName, me trompe-je ?

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

Discussions similaires

  1. récupération des valeurs d'un input généré dynamiquement
    Par patheo2 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 16/03/2011, 16h07
  2. Récupération des valeurs d'input dans iframe par $_POST
    Par corentinparent dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 26/11/2010, 18h43
  3. Réponses: 4
    Dernier message: 20/03/2007, 19h28
  4. Réponses: 5
    Dernier message: 03/05/2006, 10h27
  5. Réponses: 2
    Dernier message: 10/05/2005, 15h54

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