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

Symfony PHP Discussion :

Ajout d'une variable dans un formulaire


Sujet :

Symfony PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 16
    Points : 10
    Points
    10
    Par défaut Ajout d'une variable dans un formulaire
    Bien le bonjour à tous,

    Voici l'histoire.
    Je possède un formulaire sur une page, qui marche tout bien.
    J'ai intégré l'accordéon de JQuery-UI, qui marche tout bien, j'ai donc 6 champs. On déroule un champ, et pouf un formulaire apparaît.
    Maintenant j'aimerai optimiser tout ça, j'ai donc un champ se nommant choix_champ avec une requête javascript qui récupère lors du clic sur un des champs de l'accordéon, une variable $choix_champ. J'ai testé avec une alerte, ça marche.
    Et c'est là que j'ai du mal.
    Je souhaite que cette variable $choix_champ se mette dans mon form builder, que j'afficherai(en lecture uniquement) à l'utilisateur, pour ensuite l'enregistrer dans la base. Comme ça je pourrai par la suite classer ces formulaires par thème, les rechercher etc.

    Je comprend ça comme ça, pour ajouter cet élément dans le controlleur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $choix_champ = $this->getRequest()->query->get('choix_champ');
    $monForm->setChoixChamp($choix_champ);
    Mais hélas ça ne marche pas. J'ai regardé pas mal de choses là dessus, mais je dois avouer que j'ai vraiment du mal à piger l'histoire entre le builder, le __construc, le controller... Du coup si vous pouvez me donner quelques lumières, cela m'aiderait beaucoup !

    Merci d'avance et bonne soirée !

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    Ton form builder c'est un objet php, hors de question de le modifier en javascript.


    Tu as l'air d'avoir un formulaire complexe, je te conseille dans un premier temps de ne pas le lier a une entité base de données (de faire un formulaire lié a une classe qui n'est pas "enregistrée" par doctrine)

    Si j'ai bien compris, après que ton user fasse joujoue avec le plugin jquery, tu transmet la valeur dans ton champs (hidden?) et affichage non modificable par l'utilisateur.

    Il te reste a faire l'utilisateur valide le formulaire, tu arrives sur ton controlleur traitement du formulaire.
    Dans ce controlleur tu as le form->isValid qui vérifie si ton formulaire est valide

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    Bonjour, merci pour la réponse.

    Je suis en local donc je peux modifier ou détruire la base.
    Ce formulaire interagit déjà avec la base donc, en ajoutant ces éléments, j'ai également une page qui fait la liste de ces éléments.

    Si j'ai bien compris, après que ton user fasse joujoue avec le plugin jquery, tu transmet la valeur dans ton champs (hidden?) et affichage non modificable par l'utilisateur.
    C'est ça, il y aura un champ dans le formulaire avec le paramètre read_only, dans l'idéal.

    Donc tu veux dire que je dois insérer cette variable dans la boucle "if ($form->isValid())" pour la validation ? Je voyais ça comme l'ajout de la date de réception par exemple.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $monform= new MonForm;
    $monform->setDate(new\Datetime());
    Dans ce cas, je vire le champ dans le formbuilder.
    Donc, l'utilisateur valide le formulaire, la fonction récupère cette variable et l’envoi dans le controlleur, qu'on insère directement dans la base si le formulaire est valide?

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    ah non ducoup si c'est un champs que tu veux insérer 'tel quel' mais le juste dans le querybuilderformbuilder(désolé de la coquille), l'entité sera remplie automatiquement.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    Bon, j'ai rebouquiné pas mal de trucs pour trouver la démarche en suivant ta réponse, mais je dois avouer je ne trouve pas de solutions, entre les erreurs de "indefined variable" ou, quand ça marche, de récupérer une valeur nulle je tourne en rond.

    Quand tu parles de querybuilder, tu veux dire que je dois rajouter une ligne dans le formType du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $builder->add('la query_builder');
    Et que je dois caser mon $choix_champ là dedans en faisant une requête ? Ou tout reste dans le contrôleur.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    Ok, donc c'est bien dans le formType qu'on modifie ça. Mais du coup, comment puis je appeler une variable d'une page twig dans mon $builder ?

Discussions similaires

  1. passage d'une variable dans un formulaire
    Par porco dans le forum Langage
    Réponses: 1
    Dernier message: 14/04/2007, 13h08
  2. Renvoi d'une variable dans un formulaire
    Par boisp dans le forum Access
    Réponses: 4
    Dernier message: 01/12/2006, 18h23
  3. Ajout d'une variable dans une class fait planter
    Par Geoff-sk8 dans le forum C++
    Réponses: 4
    Dernier message: 11/10/2006, 14h27
  4. integrer une variable dans un formulaire html
    Par oops! dans le forum Langage
    Réponses: 3
    Dernier message: 08/09/2006, 19h48
  5. Réponses: 7
    Dernier message: 02/08/2006, 15h51

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