Préselection dans une liste
Bonjour,
J'ai un formulaire et j'aimerais le modifier. Du coup, j'aimerais pouvoir voir dans une liste déroulante les différents options que j'avais j'avais choisi auparavent.
En gros, j'ai ce type:
Code:
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 46 47 48 49
|
<?php
namespace Jeu\JeuBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Extension\Core\ChoiceList\ChoiceList;
class JeuType extends AbstractType {
protected $joueurs;
public function __construct($joueurs = null)
{
$this->joueurs= $joueurs;
}
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder->add('equipe', 'text', array(
'label'=>'Equipe',
'required' => false,
'attr' => array('class' => 'form-control'),
'label_attr' => array('class' => '')
->add('joueurs', 'choice', array(
'label'=>'Joueurs',
'required' => false,
'attr' => array('class' => 'form-control'),
'label_attr' =>array('class' => ''),
'choices' => $this->joueurs,
'multiple' => true,
'expanded' => false
));
}
public function setDefaultOptions(OptionsResolverInterface $resolver) {
$resolver->setDefaults(array('data_class' => 'Jeu\JeuBundle\Model\JeuModel'));
}
public function getName()
{
return 'create_event_form';
}
} |
J'ai ce model:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
<?php
namespace Jeu\JeuBundle\Entity\Model;
class JeuModel {
protected $joueurs;
public function __construct($joueurs = null)
{
$this->joueurs = $joueurs;
}
public function getJoueurs() {
return $this->joueurs;
}
public function setJoueurs($joueurs) {
$this->joueurs = $joueurs;
}
} |
Le twig associé est le suivant:
Code:
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
|
{{ form_start(form, {'action' : '', 'class' : 'form-horizontal'}) }}
{{ form_errors(form) }}
<div class="row">
<div class="form-group col-md-8">
{{ form_label(form.equipe) }}
{{ form_widget(form.equipe) }}
</div>
</div>
<div class="row">
<div class="form-group col-md-12">
{{ form_label(form.joueurs) }}
{{ form_widget(form.joueurs) }}
</div>
</div>
<div class="row">
<div class="form-group col-sm-offset-2 col-md-2">
<input class="form-control btn btn-primary" type="submit" value="Mettre à jour">
</div>
<div class="col-md-6">
</div>
</div>
{{ form_end(form) }} |
Dans une méthode de mon controller, j'ai la partie GET qui ressemble à ça:
Code:
1 2 3 4 5 6 7
|
if ($method == "GET")
{
$form = $this->createForm(new JeuType($joueurs_list), $JeuModel);
return $this->render('JeuBundle:Equipe:choix-equipe.html.twig', array("form" => $form->createView()));
} |
En gros, joueurs_list correspond à tous les joueurs.
Ce que j'aimerais, c'est que dans mon GET, préselectionner certains joueurs qui seraient spécifier dans une variable.
Du coup, les joueurs préselectionné seraient en surbrillance et les autres non.
Comment dois je procéder s'il vous plaît?
Je vous remercie par avance,