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 :

Ajout de champs de formulaire dynamique


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 30
    Points : 25
    Points
    25
    Par défaut Ajout de champs de formulaire dynamique
    Bonjour,

    voilà j'ai un bout de code qui rajoute des champs de formulaire à chaque clic sur un bouton.
    Je voudrais le modifier pour que celui-ci affiche un nombres définis de champs.
    Par exemple on entre le nombre de champs dans un champs texte puis on clique sur un bouton et les champs apparaissent (sans rechargement de la page si possible).

    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
     
    <script type="text/javascript">
    //<![CDATA[
    function create_champ(i)
    {
    var i2 = i + 1;
     
    document.getElementById('input_'+i).innerHTML = '<div id="champs_'+i+'">Nom d\'utilisateur '+i+' : <input name="user_login_'+i+'" type="text" onKeyUp="myplugin_ajax_elevation(this.form.user_login_'+i+', \'user_'+i+'_message\');" /> <span id="user_'+i+'_message"></span></div>';
    document.getElementById('input_'+i).innerHTML += (i <= 10000) ? '<div id="input_'+i2+'"><input class="input2" type="button" onClick="javascript:create_champ('+i2+')" value="Ajouter un utilisateur"></div>' : '';
    }
    //]]>
    </script>
    <div class="wrap">
    <h2>Ajouter un nouvelle utilisateur</h2>
     
    <form action="#add-new-user" method="post" name="adduser" id="adduser">
    <?php wp_nonce_field('add-user') ?>
     
    <div id="champs_1">
    Nom d'utilisateur 1 &nbsp;: &nbsp;<input name="user_login_1" type="text" onKeyUp="myplugin_ajax_elevation(this.form.user_login_1, 'user_1_message');" />
    <span id="user_1_message"></span>
    </div>
     
    <div id="input_11"><input name="button" type="button" class="input2" onClick="javascript:create_champ(2)" value="Ajouter un utilisateur"></div>
    </form>
    </div>
    Merci
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    désolé pas le temps de commenter ... :

    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans nom</title>
    <script type="text/javascript">
    		var nbInput = 0; //On utilise une variable globale pour éviter d'avoir des inputs avec le même nom...
    	function ajouterChamps(){
    		var nbChampsAjout = document.getElementById('nbChamps').value;
    		var DivToAdd = document.getElementById('divTest');
    		if(nbChampsAjout <= 0){alert('Veuillez indiquer le nombre de champs à ajouter');}
    		else{
    			for(var i = 0 ; i < nbChampsAjout; i++){
    				nbInput++;
    				tempInput = document.createElement('input');
    				tempInput.setAttribute("type","text");
    				tempInput.setAttribute("name","inputn_"+nbInput);
    				DivToAdd.appendChild(tempInput);
    			}
    		}
     
    		document.getElementById('inner').value = "CONTENU DE LA DIV APRES AJOUT<br />############################################<br />" + document.getElementById('divTest').innerHTML;
     
    	}
    </script>
    </head>
     
    <body>
    <div id="divTest">
    <input type="text" name="nbChamps" id="nbChamps"/>
    <input type="button" name="ajoutChamps" value="Ajouter" onclick="ajouterChamps()"/><br />
    <textarea rows="8" cols="70" id="inner"></textarea>
    </div>
    </body>
    </html>
    Bonne journée
    est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes

    Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 30
    Points : 25
    Points
    25
    Par défaut
    Merci beaucoup ça marche

  4. #4
    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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    oui sauf que je ne cautionne pas le setAttribute que je préfère remplacer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    tempInput.type="text";
    tempInput.name="inputn_"+nbInput;
    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 !

  5. #5
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    Effectivement on peut également affecter les propriétés de l'input après sa création, plutot qu'affecter par la méthode setAttribute mais qu'elle est la différence hormis la compatibilité ??
    est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes

    Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )

  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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    aucune mais c'est surtout pour des raisons de compatibilité !!!
    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 !

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/03/2013, 01h27
  2. Ajouter des champs de formulaires dynamiquemment.
    Par nolev3 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/08/2008, 15h44
  3. Récupérer valeur champs de formulaire dynamique
    Par antillejj dans le forum ASP
    Réponses: 1
    Dernier message: 22/12/2006, 07h17
  4. ajouter deux champs..de formulaire
    Par Chronax dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/03/2006, 12h15
  5. nom d'un champs de formulaire dynamique
    Par wil4linux dans le forum ASP
    Réponses: 2
    Dernier message: 22/09/2005, 17h42

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