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 :

Répéter X fois mon formulaire


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 117
    Par défaut Répéter X fois mon formulaire
    Bonjour à tous,

    alors voila, je débute en PHP et je n'arrive à trouver une solution à mon petit problème. Je m'explique.

    J'ai un formulaire sur une ligne (Date/Valeur1/Valeur2/Valeur3/Input/Input), sachant que les valeurs 1, 2 et 3 sont des listes déroulantes qui dépendent du choix de celle d'avant (une fois que valeur 1 est choisie, les choix dans valeur 2 sont récupéré dans ma base mySQL en fonction de valeur 1 et idem pour valeur 3).

    Du coup ce que je souhaiterai faire c'est qu'une foi la première ligne du formulaire est saisi je voudrai donner à l'utilisateur la possibilité d'appuyer sur un bouton "+" pour ajouter une nouvelle ligne (comprendre un nouveau formulaire) et si possible avoir les même valeurs que la ligne précédente dans les champs Date/Valeur1/Valeur2 (tout en lui laissant la possibilité de les changer si il ne veut pas mettre la même date par exemple).

    Pour pouvoir, une foi qu'il a fini de saisir ses données, envoyer tout à la bdd (donc noms de variables différentes pour chaque formulaire).

    Voila, j'espère que vous avez compris mon problème et saurez me donner quelque pistes.

    Merci d'avance.

    Cordialement,
    Dewey.

  2. #2
    Membre très actif
    Avatar de Nowwis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2009
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2009
    Messages : 406
    Par défaut
    Salut,

    Donc je te conseille de mettre tout tes input/select avec un [] à la fin du name.
    Par exemple name="date[]".

    De ce fait, tu obtiendra un tableau PHP grâce à $_POST['data'].
    Pour récupérer toutes les données de date, un foreach ou un while te le permettront.

    Pour le boutton +, je te conseille de le faire en JS (voir JQuery si tu t'y connais un peu) pour ajouter à la suite une div par exemple qui contient tes trois élements.

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 117
    Par défaut
    Bonjour,

    tout d'abord merci pour la réponse mais j'avoue ne rien connaitre sur le JavaScript et je voulais savoir si il n'y avait pas une méthode 100% PHP (que je ne maitrise pas bien non plus donc je ne voudrais pas trop m'étaler).

    Merci d'avance.

  4. #4
    Membre très actif
    Avatar de Nowwis
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2009
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2009
    Messages : 406
    Par défaut
    Bien sur il existe une méthode en PHP.

    Le principe :
    Renvoi le formulaire à chaque click sur le bouton + (un type submit avec un name que tu peux identifier.

    Dans ton script de validation en PHP tu testes si t'envoie le form, ou si tu veux ajouter un bouton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if(isset($_POST['ajouter_champ']))
    {
     
    }
    else
    {
     // traitement
    }
    Tu pourras par exemple faire un count en PHP de ton champ date, tu seras combien il y a de champs date.
    Ensuite, tu ajoutes 1 à cette variable, et tu ajoutes ton form.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if(isset($_POST['ajouter_champ']))
    {
    if(isset($_POST['date'])
    {
     $total = count($_POST['date']) + 1;
    // Il ne te manque plus que la boucle pour afficher le form avec le bon nombre de donnée
    }
    }

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 117
    Par défaut
    Merci pour la réponse rapide, je me penche sur cette solution et je reviendrais donner des nouvelles.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 23
    Par défaut
    Bonjour, je réouvre ce sujet qui date de quelques mois car j'ai le même soucis, mais je n'ai pas saisi la solution.

    J'ai besoin qu'un formulaire soit répéter autant de fois qu'on cliquera que "ajouter" ou "+". Donc a chaque clic on affiche le nouveau formulaire qu'on remplira ensuite, sans perdre les valeurs de l'ancien.

    Je pense que c'est la même chose que la personne de ce post avait postée.

    Merci d'avance.

Discussions similaires

  1. [1.x] Problème : Mon formulaire enregistre 2 fois en BDD
    Par kevinQ dans le forum Débuter
    Réponses: 2
    Dernier message: 20/06/2012, 19h55
  2. je dois cliquer 2 fois sur le bouton de mon formulaire !
    Par intik dans le forum Zend Framework
    Réponses: 4
    Dernier message: 11/10/2011, 20h34
  3. Je dois cliquer 2 fois sur le bouton pour valider mon formulaire !
    Par intik dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 11/10/2011, 12h34
  4. [Debutant(e)]mise à jour de mon formulaire via JSP
    Par kouadjalain dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 11/08/2004, 16h43

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