Bonjour,

Voilà, je rencontre un petit problème avec mon code.

j'ai essayé avec knp-paginator (Mais pas évident de prendre que certains éléments d'un formulaire :O)

Je suis occupé de faire un quiz et pour le moment, j'ai toutes mes questions avec leurs réponses d'afficher.

afficher question par question

Du coup, je souhaite faire une pagination pour afficher question par question avec des boutons suivant ou précédant et sur la dernière son button valider. En pensant qui doit garder toutes les informations répondues par l'utilisateur, car knp-paginator à tendance à réinitialiser des valeurs.

voilà un peu de code:

 $formBuilder = $this->createFormBuilder();
        // ------------------------Ajouter un utilisateur---------------------------------------------------
         if( $this->getUser() ){
            $formBuilder->add('utilisateur', HiddenType::class, [
                    'data'=>$this -> getUser()->getId(),
                ]);
            }
        //ou Creer un utilisateur avec un nouvelle id 
        else{
            $formBuilder->add('anonyme', EmailType::class, [
                'label'=>"Email:"
            ]);
        }
        // ------------------------Ajouter la date courante---------------------------------------------------
        $formBuilder->add('date',HiddenType::class, [
          ]);

        // ------------------------Ajouter une réponse et une question---------------------------------------------------

        $key=1;
        $i=0;
        $t=0;
        $r=0;
        foreach ( $questions as $question)
        {
            // Récupère l'id questionnaire :
            $formBuilder->add('question',HiddenType::class,[
            'data'=>$questionnaire->getId(),
            ]);
            if($tab_type_de_question[$i] ==4 ){        
                $formBuilder->add('reponse'.$r,  ChoiceType::class,[
                    'choices'  => [
                        // $question_array,
                        $tab_reponse[$i],
                    ],
                    'expanded'=> true,
                    //Si multiple = false (radio bouton), = true (checkbox)
                    'multiple'=>true,
                    'label'=>  $key.": ".$tab_question[$i],
                ]);
                $r++;
            }
            elseif($tab_type_de_question[$i] ==3 ){
                $formBuilder->add('reponse'.$r,  ChoiceType::class,[
                    'choices'  => [
                        // $question_array,
                        $tab_reponse[$i],
                    ],
                    'expanded'=> true,
                    //Si multiple = false (radio bouton), = true (checkbox)
                    'multiple'=>false,
                    'label'=>  $key.": ".$tab_question[$i],
                ]);
                $r++;
            }
            else{
                $formBuilder->add('reponseTextarea'.$t, TextareaType::class,[
                    'label'=>  $key.": ".$tab_question[$i],
                    'label_attr'=> ['class'=>'labelTextarea'],
                ]);
                dump($tab_question[$i]);
                $t++;
            }
            $i++;     
            $key++ ;
    }
// ---------------------------------------------------------------------------
        $form2=$formBuilder->getForm();
        $form2->handleRequest($request);

et la vue :

{{ form_start(form2) }}
            {{ form_widget(form2) }}
                <div class="centerbtn">
                     <button class="btn bleu">{{ button_label|default('Valider') }}</button>

                    <a href="{{ path('home') }}" class="btn orange">Retour</a>
                </div>
        {{ form_end(form2) }}

C'est la partie du formulaire réponse/question que j'aimerais mettre une pagination, mais en cherchant sur plusieurs forums, je ne vois pas comment faire, j'ai pensé au javascript, quand pensez-vous ?

1 réponse


je te donne comme ca une piste je ne sais pas si ca marche. si tu as besoin de sauvegarder les infos de l'utilisateur tu dois faire recours aux session ou la gestion des utilisateur pour les page je pense qu'il faut les programmer en dur cad de creer des fichier pour chaque page et tufait l'appelle par url