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 :

Enregistrer choix input radio formulaire en bdd avec method post classique


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de JackSteller
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Janvier 2019
    Messages : 41
    Par défaut Enregistrer choix input radio formulaire en bdd avec method post classique
    hello j'ai un formulaire



    Code twig : 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
    <form class="form-group" id="form{{manger.id}}" action="{{ path('thematique_reponse') }}" method="POST">
    				    <div class="reponse">
                                           <div class="question-alimentation">
    				              <p><i>-{{manger.questions}}</i></p>{#<----ma question--#}
    			               </div>
     
    					 <label for="{{manger.niveau1}}{{manger.id}}">{{manger.niveau1}}<input type="radio" class="eat"
    							name="{{manger.id}}" id="{{manger.niveau1}}{{manger.id}}" /></label><br><br>
     
    					<label for="{{manger.niveau2}}{{manger.id}}">{{manger.niveau2}}<input type="radio" class="eat"
    							name="{{manger.id}}" id="{{manger.niveau2}}{{manger.id}}" /></label><br><br>
     
    					<label for="{{manger.niveau3}}{{manger.id}}">{{manger.niveau3}}<input type="radio" class="eat"
    							name="{{manger.id}}" id="{{manger.niveau3}}{{manger.id}}" /></label><br><br>
     
    					<label for="{{manger.niveau4}}{{manger.id}}">{{manger.niveau4}}<input type="radio" class="eat"
    							name="{{manger.id}}" id="{{manger.niveau4}}{{manger.id}}" /></label><br><br>
     
    					<label for="{{manger.niveau5}}{{manger.id}}">{{manger.niveau5}}<input type="radio" class="eat"
    							name="{{manger.id}}" id="{{manger.niveau5}}{{manger.id}}" /></label><br><br>
     
    					<label for="{{manger.niveau6}}{{manger.id}}">{{manger.niveau6}}<input type="radio" class="eat"
    							name="{{manger.id}}" id="{{manger.niveau6}}{{manger.id}}" /></label><br><br>
     
    				</div>
    			</form>
     
     
    			<div id="button{{manger.id}}" class="btn-valider">
    				<button type="submit" id="suivant{{manger.id}}" data-numero="{{manger.numquestion}}" class="suivant"
    					data-formulaireid="form{{manger.id}}">Valider</button>

    au clique sur bouton valide je suis redirigé ver mon contrôleur

    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
    36
    37
    38
    class DefaultController extends Controller
    {
     
         /**
         * @Route("/Reponse/thematique", name="thematique_reponse")
         * @Method({"GET", "POST"})
         */
     
        public function reponseThematique(Request $request)
     
        {
         $userSlpRepo = $this->getDoctrine()->getRepository(UserSlp::class);//
         $reponseThematiqueRepo = $this->getDoctrine()->getRepository(Reponse_thematique::class);//mon entité ou je vais enregistrer mes réponses lié a la question et l'user
         $questionMangerRepo = $this->getDoctrine()->getRepository(Manger::class);//mon entité qui contient toute les questions mais aussi d'autre parametre (colonnes)
     
     
     
                $em = $this->getDoctrine()->getManager();//entité manager
     
                $userSlp = $userSlpRepo->findOneByGaeaUserId($this->getUser()->getId());//je récupérè le user connecté pour pouvoir enregistrer son Id dans l'entité "réponse thématique".
                $datas = $request->request->all();//récupéré les requêtes que j'aurais posté
     
               foreach ($datas as $data => $value){
     
                $questionId = explode("_", $data);
                $question = $questionMangerRepo->find($questionId[0]);  
     
     
                $answer = new Reponse_thematique;
                $answer->setManger($question); //ok recuper bien l'id de la question
                $answer->setValue($value);    //impossible d'enregistrer quoi que ce soit
                $answer->setUserSlp($userSlp);   //ok  recuper bien l'id du user       
                $em->persist($answer); 
                $em->flush();
               }
     
            exit;          
        }
    Déja je fais une requete ajax tous se pass bien a chaque fois je clique sur une reponse j'ai une ligne de plus dans ma bdd..sauf que value reste a NULL..

    je sais pas si c'est comme cela qu'il faut faire mais bon voila je fais un foreach sur les donnés POST et a travers un explode j'essaie de récupérer les valeurs du input je sais pas si c'est comme cela qu'il faut faire.... je voudrais enregistré la réponse du user sachant que chaque label est une réponse l'id de la question et user id s'enregistre bien mais pas de valeur du input qui peut m'expliquer..

    ici mon entité mange ou se trouve les questions

    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
    36
    37
    38
    class Manger
    {
        /**
         * @var int
         *
         * @ORM\Column(name="id", type="integer")
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="AUTO")
         */
        private $id;
     
        /**
         * @var string|null
         *
         * @ORM\Column(name="Sous_processus", type="string", length=30, nullable=true)
         */
        private $sousProcessus;
     
        /**
         * @var string|null
         *
         * @ORM\Column(name="Theme", type="string", length=89, nullable=true)
         */
        private $theme;
     
        /**
         * @var string|null
         *
         * @ORM\Column(name="Sous_theme", type="string", length=110, nullable=true)
         */
        private $sousTheme;
     
        /**
         * @var string|null
         *
         * @ORM\Column(name="Questions", type="string", length=191, nullable=true)
         */
        private $questions;

    ici mon entité reponse_thematique
    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
     class  Reponse_thematique
    {
     
    /**
         * @var int
         *
         * @ORM\Column(name="id", type="integer")
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="AUTO")
         */
        private $id;
     
        /**
         *
         * @ORM\ManyToOne(targetEntity="AppBundle\Entity\UserSlp", inversedBy="Reponse_thematiques")
         * @ORM\JoinColumn(name="user_slp_id", referencedColumnName="id")
         */
        private $userSlp;
     
        /**
         * @ORM\ManyToOne(targetEntity="Manger")
         * @ORM\JoinColumn(name="manger_id", referencedColumnName="id")
         */
        private $manger;
     
          /**
         * @var int|null
         *
         * @ORM\Column(name="value", type="integer", nullable=true)
         */
        private $value;
    voila ce que j'ai en bdd...value null manque quoi? une relation? merci de m'aider je suis en pleine découverte du framework

    Nom : manger.png
Affichages : 563
Taille : 27,2 Ko

  2. #2
    Membre averti Avatar de JackSteller
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Janvier 2019
    Messages : 41
    Par défaut
    j'ai trouver..un vulgaire setter (value) qui ne retournais rien...merci quand meme

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PDO] Insertion dans bdd avec méthode post
    Par williammalo dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 06/01/2019, 16h32
  2. [MySQL] Formulaire dynamique et input radio vers ma bdd
    Par ecilop dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 24/04/2017, 11h43
  3. [XL-2007] formulaire et BDD avec VBA
    Par cess2308 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/12/2011, 20h30
  4. Réponses: 4
    Dernier message: 28/12/2009, 15h37
  5. Envoi incomplet avec methode post
    Par Tr@nkill dans le forum ASP
    Réponses: 8
    Dernier message: 16/05/2005, 12h14

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