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 :

Incrémentation d'un name en JavaScript


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 29
    Par défaut Incrémentation d'un name en JavaScript
    Bonjour,

    J'ai un tableau php/html qui est généré par du javascript à l'aide d'un OnClick(). Jusqu'ici tout va bien çà fonctionne parfaitement

    Par contre, lorsque je génère mon select pour ma liste déroulante, le name ne change pas ... Je ne sais pas du tout comment faire car je suis débutant en js je pense bien qu'il faut incrémenter un nombre qui serait dans le name mais comme je vous l'ai dis je sais pas du tout faire en js ...

    Si quelqu'un peut m'aider je le remercie d'avance

    Voici mon code js:
    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
    function insRow()
    {
    	var x=document.getElementById('myTable').insertRow(0);
    	var a=x.insertCell(0);
    	var b=x.insertCell(1);
    	var c=x.insertCell(2);
    	var d=x.insertCell(3);
    	var e=x.insertCell(4);
    	var f=x.insertCell(5);
    	var g=x.insertCell(6);
    	a.innerHTML="Type : ";
    	b.innerHTML="<select id='type' name='type' style='top:0;left:0;width:150px;'>" +
    			"		<option value='&nbsp;'>-selectionnez-</option>" +
    			"		<option value='carton'>carton</option>" +
    			"	 </select>";
    	c.innerHTML="Entre les pages ";
    	d.innerHTML="<input type='text' value='1' name='firstInter' size='1' maxlength='3'/>";
    	e.innerHTML=" et ";
    	f.innerHTML='<input type="text" value="1" name="finalInter" size="1" maxlength="3"/>';
    	g.innerHTML='<a href="#" onclick="suppLigne(this.parentNode.parentNode)"> Supprimer </a>';
    }
     
    function suppLigne( ligne)
    {
    	ligne.parentNode.removeChild( ligne);
    }

  2. #2
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Si tu parles d'incrémenter, je suppose que cette fonction insRow est appelée plusieurs fois consécutives, et que tu veux avoir dans chaque ligne un select avec un name unique ^^

    Au moment ou tu appelles ta fonction insRow, passe-lui une variable que tu incrémentes après. Pour ça, il faudrait voir où (et comment) est appelée ta fonction insRow, mais en tout cas ça donnerait :
    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
    function insRow(num)
    {
    	var x=document.getElementById('myTable').insertRow(0);
    	var a=x.insertCell(0);
    	var b=x.insertCell(1);
    	var c=x.insertCell(2);
    	var d=x.insertCell(3);
    	var e=x.insertCell(4);
    	var f=x.insertCell(5);
    	var g=x.insertCell(6);
    	a.innerHTML="Type : ";
    	b.innerHTML="<select id='type' name='type'" + num + " style='top:0;left:0;width:150px;'>" +
    			"		<option value='&nbsp;'>-selectionnez-</option>" +
    			"		<option value='carton'>carton</option>" +
    			"	 </select>";
    	c.innerHTML="Entre les pages ";
    	d.innerHTML="<input type='text' value='1' name='firstInter' size='1' maxlength='3'/>";
    	e.innerHTML=" et ";
    	f.innerHTML='<input type="text" value="1" name="finalInter" size="1" maxlength="3"/>';
    	g.innerHTML='<a href="#" onclick="suppLigne(this.parentNode.parentNode)"> Supprimer </a>';
    }
     
    function suppLigne( ligne)
    {
    	ligne.parentNode.removeChild( ligne);
    }
    Et par exemple à l'appel (qui doit être dans une boucle while ou for je suppose) :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (var i = 0; i < max; ++i) {
       // ...
       insRow(i);
       // ...
    }

    Dernière remarque : l'id doit être unique sur une page, donc puisque tu as un compteur, profites-en pour l'appliquer à l'id aussi, histoire de le rendre unique lui aussi ^^ (même modus operandi)

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    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
    var i = 0;
    function insRow()
    {
    	var x=document.getElementById('myTable').insertRow(0);
    	var a=x.insertCell(0);
    	var b=x.insertCell(1);
    	var c=x.insertCell(2);
    	var d=x.insertCell(3);
    	var e=x.insertCell(4);
    	var f=x.insertCell(5);
    	var g=x.insertCell(6);
    	a.innerHTML="Type : ";
    	b.innerHTML="<select id='type"+i+"' name='type"+i+"' style='top:0;left:0;width:150px;'>" +
    			"		<option value='&nbsp;'>-selectionnez-</option>" +
    			"		<option value='carton'>carton</option>" +
    			"	 </select>";
    	c.innerHTML="Entre les pages ";
    	d.innerHTML="<input type='text' value='1' name='firstInter' size='1' maxlength='3'/>";
    	e.innerHTML=" et ";
    	f.innerHTML='<input type="text" value="1" name="finalInter" size="1" maxlength="3"/>';
    	g.innerHTML='<a href="#" onclick="suppLigne(this.parentNode.parentNode)"> Supprimer </a>';
    i++;
    }
    L'id doit être unique dans un document.

    A+.

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Citation Envoyé par RomainVALERI
    b.innerHTML="<select id='type' name='type'" + num + " style='top:0;left:0;width:150px;'>"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    b.innerHTML="<select id='type" + num + "' name='type" + num + "'style='top:0;left:0;width:150px;'>"
    A+.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 29
    Par défaut
    Merci c'est exactement ce que je cherchais

    Mais dans ta solution Romain VALERI, elle se fait quand l'incrémentation de num ?

  6. #6
    Rédacteur

    Avatar de Torgar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 334
    Par défaut
    Par la boucle for(var i = 0; i < max; ++i), c'est à cet endroit (++i) que ce fait l'incrémentation.
    A chaque passage de la boucle, ta fonction sera exécutée avec la valeur de i qui augmentera tant qu'elle ne sera pas égale à la valeur de la variable max.

    Cette variable max doit être définie au préalable avec le nombre d'itération que tu souhaites.

    Par exemple : var max = 10;
    Je ne suis pas schizophrène, nous sommes unanime !!!

    ► Pensez à la balise code et au CODE HTML GENERE !!!!
    ► Au si c'est le cas et au à ceux qui vous ont aidé.
    Vous souhaitez participer aux rubriques CSS et (X)HTML ? Contactez-nous !

    Créer des colonnes de même hauteur en CSS
    Glossaire CSS
    Les bordures en CSS3
    Les transitions en CSS3

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 29
    Par défaut
    Merci Torgar tu viens d'éclairer mon chemin

    Je vais faire avec le for parce qu'avant je faisais apparaitre les lignes de tableau avec un OnClick mais bon çà me complique la vie et je commence à saturer sur le problème

    Mais bon je dois juste revoir ma façon de procéder. Quoi qu'il en soit merci a tous pour votre aide

    --> Résolu

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

Discussions similaires

  1. Javascript Photoshop incrémentation série
    Par Agent dans le forum Imagerie
    Réponses: 2
    Dernier message: 22/07/2009, 02h31
  2. incrémenter valeur d'un noeud xml avec javascript
    Par caweb dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 09/01/2008, 09h52
  3. [javascript]pb d'incrémentation
    Par cisse18 dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 14/03/2006, 16h29
  4. comment auto-incrémenté un "element name"
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 30/12/2005, 09h21

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