Bonjour a tous,
J'ai un formulaire contenant des questions de type champs libres (texte), choix multiple (case à cocher), choix unique (radio) à échelle.
Je vérifie les valeurs du bouton qui a été coché et j'enregistre dans la base de données pour chaque utilisateur, mais ce que je veux faire, c'est modifier cette valeur pour pouvoir faire ensuite un calcul et afficher selon le résultat un profil ..comme suit:
Code twig : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <div class="label-div1"> {% for i in 1.. subQuestion.scaleType.choiceNumber %} <label for="subscale{{subQuestion.id}}for{{i}}" style="margin:3px;"><img src="{{asset('images/survey/humeur/'~ i ~'.jpg')}}" style="width: 50px; height: 50px;"> </label> <input type="radio" class="radio-pict" name="{{subQuestion.id}}" id="subscale{{subQuestion.id}}for{{i}}" data-point="{{i}}" value="{{i}}"> {% endfor %} </div>
la valeur est dans une boucle {% for i in 1..5 %}
je veux que pour les valeur data-point "1" j'enregistre 10 point en bdd
data-point "2" j'enregistre 7 point en bdd
data-point "3" j'enregistre 4 point en bdd
data-point "4" j'enregistre 2 point en bdd
comment dois-je faire cela? Demande SQL? dans la boucle? un peu d'aide serait la bienvenue .. voila mon controller ou j'enregistre les réponses
Juste à titre indicatif j'ai fais une page admin où je peux visualiser les réponses et ensuite les traiter..
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
39
40
41
42
43
44
45 public function saveAnswer(Request $request) { /* Repository */ $questionRepo = $this->getDoctrine()->getRepository(Question::class); $answerRepo = $this->getDoctrine()->getRepository(Answer::class); $choiceRepo = $this->getDoctrine()->getRepository(Choice::class); $userSlpRepo = $this->getDoctrine()->getRepository(UserSlp::class); /* Entity Manager */ $em = $this->getDoctrine()->getManager(); $datas = $request->request->all(); $userSlp = $userSlpRepo->findOneByGaeaUserId($this->getUser()->getId()); foreach ($datas as $data => $value) { $questionId = explode("_", $data); $question = $questionRepo->findOneById($questionId[0]); switch ($question) { case 'Sub_question_free': $answer = new Answer_free; $answer->setFreeAswere($value); break; case 'Sub_question_scale': $answer = new Answer_scale; $answer->setScale($value); break; $answer->setQuestion($question); $answer->setUserSlp($userSlp); $em->persist($answer); $em->flush(); } exit; } }
Code twig : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 {% if answer.question == "Sub_question_choice" or answer.question == "Sub_question_scale" or answer.question == "Sub_question_free" %} {% if answer == "choice" %} {% for choice in answer.choices %} <p>{{choice.name}}</p> {% endfor %} {% elseif answer == "free" %} <p>{{answer.freeAswere}}</p> {% elseif answer == "scale" %} <p> {{answer.scale}}</p>//ici je recupere mes reponses de subquestion_scale (scale est la question master de subquestion scale) {% endif %}
Partager