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 :

Ajouter un nouveau champs par bouton + et création de variables


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 127
    Par défaut Ajouter un nouveau champs par bouton + et création de variables
    Bonjour

    Je monte actuellement un formulaire de génération de fiche, en gros selon les informations entrées, l'utilisateur récupère un texte contenant ces informations (le texte étant formaté, etc).

    J'aurai voulu savoir si ce qui suit est possible:

    En gros, avoir un bouton "+" qui permet d'ajouter deux nouveaux input côte à côte. Ce que l'utilisateur y entre sera récupéré sous forme de variables pour le texte.

    Est-ce possible ?

    Le lien du générateur:
    http://warforum-jdr.com/genprez/presentation.php

    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 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
    ça doit même être dans les contributions ...
    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é
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 127
    Par défaut
    Bonjour

    En effet. J'ai également abouti avec des recherches google.
    J'ai utilisé ce script que j'ai trouve sur le net:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <script>
    function create_champ(i) {
     
    var i2 = i + 1;
     
    document.getElementById('leschamps_'+i).innerHTML = '<input type="file" name="fichier_'+i+'"></span>';
    document.getElementById('leschamps_'+i).innerHTML += (i <= 10) ? '<br /><span id="leschamps_'+i2+'"><a href="javascript:create_champ('+i2+')">Ajouter un champs</a></span>' : '';
     
     
    }
    </script>
    Voici mon script adapté:

    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
     
    <script>
    function create_champ(i) {
     
    var i2 = i + 1;
     
    document.getElementById('pdc_'+i).innerHTML = '<tr>
        <td><input name="pdcname_'+i+'" type="text" id="pdcname_'+i+'" size="15" maxlength="255" value="Nom Dieu" onclick="this.value=\'\';" /></td>
        <td><input name="pdcpts_'+i+'" type="text" id="pdcpts_'+i+'" size="3" maxlength="2" /></td>
      </tr>
        </span>';
    document.getElementById('pdc_'+i).innerHTML += (i <= 10) ? '<br /><span id="pdc_'+i2+'"><a href="javascript:create_champ('+i2+')">Ajouter un Dieu</a></span>' : '';
     
     
    }
    </script>
    Voici la zone où est appliquée la génération dynamique de champs (c'est dans du php):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <table>
      <tr>
        <td><input name="pdcname_1" type="text" id="pdcname_1" size="15" maxlength="255" value="Nom Dieu" onclick="this.value=\'\';" /></td>
        <td><input name="pdcpts_1" type="text" id="pdcpts_1" size="3" maxlength="2" /></td>
      </tr>
      <tr>
       <td><span id="pdc_2"><a href="javascript:create_champ(2)">Ajouter un Dieu</a></span></td>
       </tr>
    </table>
    Mais le script ne fonctionne pas, rien ne se passe quand j'appuie sur Ajouter un Dieu. Hors j'ai cherché mon erreur, sans succès :s

    Voyez:
    http://warforum-jdr.com/genprez/test.php

    Pouvez-vous m'aider ?
    Merci

  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 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
    Voilà ce qu'il arrive lorsque l'on utilise des scripts iochés ailleurs qui utilisent du l'insertion avec innerHTML ... :grin:
    Je te conseillerais plutot d'utiliser les scripts de nos contributions qui utilisent createElemetn ou cloneNode...
    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
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 127
    Par défaut
    Bonjour

    En effet, avec :

    http://javascript.developpez.com/sou...e=forms#upload

    ca fonctionne. J'ai réussi à adapter correctement

    Néanmoins, je me pose la question: comment récupérer la/les variables créées pour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function generation()
    {
    Par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <tr>
                <td valign="top" align="right" >Nom & Pr&eacute;nom du personnage: </td>
                <td valign="top" align="left" ><input name="nomperso" type="text" id="nomperso" size="25" maxlength="255" /></td>
              </tr>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $nomperso = $_POST['nomperso'];
    Là pas de problèmes. Mais ici ?

    Merci d'avance

  6. #6
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Bonjour,

    Vous pouvez répéter la question ?
    Si vous êtes côté serveur, votre PhP fonctionnera.
    Si vous restez côté client pour du Javascript, vous récupérer un élément ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var nomperso = document.getElementById("nomperso").value;

  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 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
    la methode de siddh attribue les names dynamiquement , ça ne fonctionne pas avec IE ...

    il faudrait plutot passer par un objet de formulaire caché et tu le clones avec cloneNode, puis te le rends visible.
    Ensuite coté php tu recupères un tableau car ils ont le même name ...

    Sinon il faudra passer par une autre contribution pour créer dynamiquemnt des objets de form :
    http://www.developpez.net/forums/d53...s+pas+que+form

    Prise en compte du name assurée ...
    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éponses: 9
    Dernier message: 27/07/2016, 14h56
  2. [AC-2007] Ajouter un nouveau champ a un formulaire ou requete
    Par zippi dans le forum IHM
    Réponses: 4
    Dernier message: 02/05/2011, 16h21
  3. Ajout d'un champ par programmation
    Par zwina2004 dans le forum WinDev
    Réponses: 3
    Dernier message: 06/10/2008, 09h17
  4. Réponses: 6
    Dernier message: 10/04/2007, 23h50
  5. Réponses: 4
    Dernier message: 11/05/2006, 16h23

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