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 :

Boucle dont la variable peut changer sur une seule ligne ?


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 388
    Par défaut Boucle dont la variable peut changer sur une seule ligne ?
    Bonsoir,
    Ma question n'est peut-être pas très claire, j'explique : je souhaite changer dans mon code JavaScript des lignes d'instructions en une boucle,une façon de faire plus court et de ne pas utiliser plusieurs variables.
    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function create_champ(i) {
    	var i2 = i + 1;
    	var a = 1;
    	var b = a - 1;
    	var c = a;
    	var d = a + 1;
    	document.getElementById('leschamps_'+i).innerHTML = '<fieldset><div class="row"><section class="col col-6"><label class="input"><i class="icon-append fa fa-user"></i><input type="text" name="nom_pers_['+i+']['+b+']" id="nom_pers" placeholder="Nom "></label></section><section class="col col-6"><label class="input"><i class="icon-append fa fa-user"></i><input type="text" name="nom_pers_['+i+']['+c+']" id="nom_pers" placeholder="Prénom "></label></section></div><section><label class="input"><input type="text" name="nom_pers_['+i+']['+d+']" id="nom_pers" placeholder="Fonction "></label><i></i></section>';
    	document.getElementById('leschamps_'+i).innerHTML += (i <= 10) ? '<br /><span id="leschamps_'+i2+'"><a href="javascript:create_champ('+i2+')">Ajouter un champs</a></span>' : '';
    }
    Ce code permet d'ajouter des champs dans un formulaire.
    Je voudrais remplacer les variables a,b,c, d par une seule variable (sachant qu'elles sont utilisées sur une seule ligne), en utilisant une boucle.
    Est-ce possible ?

    Merci

  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 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
    Elle est où la boucle ?
    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 expérimenté Avatar de gustave02
    Homme Profil pro
    aucune
    Inscrit en
    Février 2013
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Février 2013
    Messages : 162
    Par défaut
    bonjour
    je t'ai surement pas compris. si c'est le cas désolé.

    tu mets var i2 = i + 1; et '<br /><span id="leschamps_'+i2+'"><a href="javascript:create_champ('+i2+')">A

    moi je resume '<br /><span id="leschamps_'+(i + 1)+'"><a href="javascript:create_champ('+(i + 1)+')">A

    et tu met var a = 1; et var c = a; pourquoi avoir c ?

    puis var b = a - 1; pour moi b=0 donc " ><input type="text" name="nom_pers_['+i+']['+b+']" id="nom_pers" p " == " ><input type="text" name="nom_pers_['+i+'][0]" id="nom_pers" p"

    si je suis a coté désolé
    @+gustave02

  4. #4
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 388
    Par défaut
    Elle est où la boucle ?
    Ma boucle ne fonctionne pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    // Ici la taille des indices est juste mise pour un exemple
    for (k=0; k<=2;k++){                // j'ai mis un k pour différencier avec le i déjà utilisé
                   for (j=0; j<=3;j++){
    		       a=0;             //a est la valeur à mettre
    				}
    					a++;
    			}
    Voici un exemple du fonctionnement de la fonction.
    Les valeurs en rouge représentent les résultats des variables b,c,d écrites dans le code précédent. On devrait toujours avoir ce résultat pour n lignes et m colonnes.
    i\j| 0 | 1 | 2 | 3 |
    ---------------------------
    0 | 0 | 1 | 2 | 3 |
    ----------------------------
    1 | 0 | 1 | 2 | 3 |
    ----------------------------
    2 | 0 | 1 | 2 | 3 |
    ----------------------------


    A noter que je devrais écrire: nom_pers_[i][valeurs : b,c,d ....] ce qui correspond à :
    formulaire 1 : nom_pers[0][0] , nom_pers[0][1], nom_pers[0][2]
    formulaire 2 : nom_pers[1][0], nom_pers[1][1], nom_pers[1][2]
    formulaire 3 : nom_pers[2][0], nom_pers[2][1], nom_pers[2][2]
    ce qui équivaut à la matrice.

  5. #5
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 388
    Par défaut
    @ gustave02
    Merci pour votre réponse.
    En fait, je n'ai pas bien compris votre code, plus précisément ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    b=0 ;
    <input type="text" name="nom_pers_['+i+']['+b+']" id="nom_pers" p " == " ><input type="text" name="nom_pers_['+i+'][0]" id="nom_pers" p"
    Ici les 2 input ont la même valeur dans le 2ème indice, c'est le zéro. Or le 2ème devra être incrémenté de 1.
    Je ne sais pas ce que vous avez compris, quelles sont les valeurs que vous voulez faire sortir de ce code-là ?

  6. #6
    Membre expérimenté Avatar de gustave02
    Homme Profil pro
    aucune
    Inscrit en
    Février 2013
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Février 2013
    Messages : 162
    Par défaut
    j'au du mal, je ne dois pas comprendre ta question.

    tu cherche a lire un tableau associtifs avec deux boucle? "nom_pers"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for (k=0; k<=2;k++){          
         for (j=0; j<=3;j++){
    		      alert(nom_pers[k][j] );//tu lis ton tableau case après case
        }
    }
    excuse si je suis a coté.
    @+gustave02

  7. #7
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 388
    Par défaut Lire plusieurs tableaux
    bonjour gustave,
    C'est cela, je cherche à lire un tableau, ou plus exactement plusieurs tableaux, puis récupérer leur valeur et les insérer dans un BDD.
    Il faudra utiliser le j et le k dans cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('leschamps_'+i).innerHTML = '<fieldset><div class="row"><section class="col col-6"><label class="input"><i class="icon-append fa fa-user"></i><input type="text" name="nom_pers_['+i+']['+b+']" id="nom_pers" placeholder="Nom "></label></section><section class="col col-6"><label class="input"><i class="icon-append fa fa-user"></i><input type="text" name="nom_pers_['+i+']['+c+']" id="nom_pers" placeholder="Prénom "></label></section></div><section><label class="input"><input type="text" name="nom_pers_['+i+']['+d+']" id="nom_pers" placeholder="Fonction "></label><i></i></section><div class="row"><section class="col col-6"><label class="input"><i class="icon-append fa fa-phone"></i><input type="tel" name="nom_pers_['+i+']['+e+']" id="tel_m" placeholder="Téléphone mobile"></label></section><section class="col col-6"><label class="input"><i class="icon-append fa fa-phone"></i><input type="tel" name="nom_pers_['+i+']['+f+']" id="tel_d" placeholder="Téléphone domicile"></label></section></div><div class="row"><section class="col col-6"><label class="input"><i class="icon-append fa fa-phone"></i><input type="tel" name="nom_pers_['+i+']['+g+']" id="tel_p" placeholder="Téléphone bureau"></label></section></div><div class="row"><section class="col col-6"><label class="input"><i class="icon-append fa fa-envelope-o"></i><input type="email" name="nom_pers_['+i+']['+h+']" id="mail_pers" placeholder="Mail"></label></section><section class="col col-6"><label class="input"><i class="icon-append fa fa-phone"></i><input type="tel" name="nom_pers['+i+']['+j+']" id="fax_pers" placeholder="Fax"></label></section></div><section><label class="label">Description du contact</label><label class="textarea"><i class="icon-append fa fa-comment"></i><textarea rows="4" name="nom_pers_['+i+']['+k+']" id="desc_pers"></textarea></label></section></fieldset>';
    Le problème qui se pose c'est la valeur du j. Puisque le k ne changera pas de valeur tout au long de la ligne, ce qui n'est pas le cas pour le j.

Discussions similaires

  1. Réponses: 4
    Dernier message: 07/05/2013, 12h27
  2. [CSS][firefox]positionner mes div sur une seule ligne
    Par hansaplast dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 29/03/2006, 14h44
  3. Plusieures infos sur une seule ligne avec ou sans tableau
    Par Him dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 17/03/2006, 14h16
  4. Synedit -commentaires sur une seule ligne
    Par Malone dans le forum Composants VCL
    Réponses: 2
    Dernier message: 03/02/2006, 19h44
  5. wxWidgets : couleur de texte sur une seule ligne
    Par Oatly dans le forum wxWidgets
    Réponses: 8
    Dernier message: 05/12/2004, 19h24

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