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 :

Modifier la valeur d'une reponse [1.x]


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 Modifier la valeur d'une reponse
    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

    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;
          }
        }
    Juste à titre indicatif j'ai fais une page admin où je peux visualiser les réponses et ensuite les traiter..

    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 %}

  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
    Code php : 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
    /**
         * set value.
         *
         * @return int
         */
        public function setValue($value)
        {
     
            if ( $value == 1) {
                $value = 10;
              }elseif($value == 2) {
                      $value = 7;
                    }elseif($value == 3) {
                            $value = 4;
                         }elseif($value == 4) {
                                 $value = 2;
                }
     
             $this->value =$value;
             return $this;
     
        }

    c'est ok dan les setter je fais cela

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

Discussions similaires

  1. [XSL] Comment modifier la valeur d'une variable?
    Par sorcer1 dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 17/02/2010, 13h26
  2. Tableaux associatifs: modifier la valeur d'une clé
    Par peuf23 dans le forum Langage
    Réponses: 2
    Dernier message: 04/07/2006, 10h58
  3. Réponses: 9
    Dernier message: 04/05/2006, 17h33
  4. Réponses: 3
    Dernier message: 04/01/2006, 20h53
  5. Réponses: 6
    Dernier message: 30/09/2005, 16h24

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