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

Langage PHP Discussion :

PHP : Formulaire dynamique, ajout de champ


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut PHP : Formulaire dynamique, ajout de champ
    Bonjour,
    Voilà, j'ai un formulaire dans lequel j'aimerais pouvoir ajouter des champs via un bouton, j'y arrive, mais je ne peux pas récupérer la valeur des champs.
    Comment je peux faire ça ?

    Cordialement,

    Code html : 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
    <form method="POST" action="" >
    <fieldset><legend>Formulaire de saisie</legend>
        <div id="champs" >
    Nom des groupes : <br>
    <input id="texte" type="text" name="titre[]"/><br>
        </div>
    <button type="button" onclick="addField()" >+</button><br>
    </fieldset>
    <script type="text/javascript" >
            var div = document.getElementById('champs');
            function addInput(nam){
                var input = document.createElement("input");
                input.name = name;
                div.appendChild(input);
            }
            function addField() {
            addInput("titre[]");
            div.appendChild(document.createElement("br"));
            }
    </script>
        <br>
        <input type="submit" value="Cr&eacute;er"/>
    </form>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    if(!empty($_POST)){
    $tab = $_POST["titre[]"];
    Dernière modification par Bovino ; 06/05/2014 à 10h49.

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function addInput(nam){
        var input = document.createElement("input");
        input.name = name;
        div.appendChild(input);
    }
    Pas vraiment étonnant...
    Comme je le dis souvent, quand tu appelles ta femme avec le prénom d'une autre, si tout se passe bien, ça se passe mal. Ben avec JavaScript (en fait, en programmation en général), c'est pareil !

  3. #3
    Invité
    Invité(e)
    Par défaut
    Exact exact, merci beaucoup.

    Cependant, ma méthode pour récupérer derrière est-elle correcte ?

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 440
    Points : 15 814
    Points
    15 814
    Par défaut
    affiche le tableau $_POST avec la fonction http://php.net/var_dump par exemple pour voir ce que tu récupères

  5. #5
    Invité
    Invité(e)
    Par défaut
    J'ai changer de méthode pour l'ajout des champs. Et avec le var_dump je récupère bien le contenu des champs donc c'est bon. Maintenant, il me reste juste a les traiter.

    Cordialement,

    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
    <script>
    function create_champ(i) {
     
    var i2 = i + 1;
     
    document.getElementById('leschamps_'+i).innerHTML = '<input type="input" name="name_'+i+'"></span>';
    document.getElementById('leschamps_'+i).innerHTML += (i <=40 ) ? '<br /><span id="leschamps_'+i2+'"><a href="javascript:create_champ('+i2+')">Ajouter un champs</a></span>' : '';
     
     
    }
    </script>
     
    <form action="" method="POST">
    <fieldset><legend>Formulaire de saisie</legend>
    <input type="input" name="name_1" /><br />
    <span id="leschamps_2"><a href="javascript:create_champ(2)">Ajouter un champs</a>
    </fieldset>
    <input type="submit" value="Cr&eacute;er">
    <?php
    var_dump($_POST);
    ?>

  6. #6
    Invité
    Invité(e)
    Par défaut
    Cependant, j'aimerais faire la vérification avant d'envoyer le formulaire, que tous les champs, y compris ceux que l'utilisateur à ajouter soit bien rempli. Or vu qu'ils ont des nom différents à chaque fois je ne sais pas comment faire..

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 389
    Points : 10 422
    Points
    10 422
    Par défaut
    Tu peux utiliser getElementsByTagName pour récupérer un tableau d'input par exemple. Et éventuellement tu insère ces input dans un conteneur si tu veux n'en cibler que certains.
    Il y aurait aussi la méthode d'attribuer une classe sur les input que tu veux contrôler. Mais cette méthode est moins performante et dans ce cas j'utiliserais plutôt jquery par facilité pour récupérer les éléments.

    Mais bon on est assez loin de php là...

  8. #8
    Invité
    Invité(e)
    Par défaut
    Ouais, non mais je penser a quelque chose dans le php qui vérifie, comme dans un formulaire classique où on vérifie avec empty quoi..

  9. #9
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Tu peux tout simplement utiliser l'attribut HTML required.
    Pour aller plus loin : L'API HTML5 de contrainte de validation.

  10. #10
    Invité
    Invité(e)
    Par défaut
    C'est exactement ce dont j'avais besoin.

    Merci beaucoup pour votre aide.
    Cordialement,

Discussions similaires

  1. Formulaire dynamique (nombre de champs)
    Par Tidus159 dans le forum ASP.NET MVC
    Réponses: 2
    Dernier message: 13/05/2011, 11h07
  2. [PHP 4] formulaire dynamique + création de champ + post = Gros Souci
    Par fred2b06 dans le forum Langage
    Réponses: 3
    Dernier message: 15/03/2011, 14h28
  3. Réponses: 2
    Dernier message: 02/03/2011, 14h02
  4. [JS/PHP] Formulaire dynamique : ajout de ligne et requete SQL
    Par Argol dans le forum Général JavaScript
    Réponses: 29
    Dernier message: 11/03/2009, 04h22
  5. Pb php : formulaire dynamique
    Par lucyole dans le forum Langage
    Réponses: 3
    Dernier message: 14/06/2006, 15h33

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