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 ?