symfony2 personnaliser le formulaire sélectionner les options
Je suis en train de faire un formulaire simple pour ajouter une activité avec un nom et une couleur.
Je tiens donc à faire une liste avec quelques une variété de couleurs, pour l'instant ça fonctionne, j'ai le nom de la couleur.
Je peux ajouter n'importe quel attribut de ma balise select:
$form = $this->createFormBuilder($myclass)
->add('Colors','choice',array('label'=>'select some colors',
'multiple'=>true,
'choices'=>array(1=>'red', 2=>'blue', 3=>'green'),
'attr'=>array('style'=>'width:300px', 'customattr'=>'customdata')
));
La sortie sera quelque chose comme ceci:
<select name="select" style="width: 300px;" multiple="multiple" customattr="customdata">
<option value="1">red</option>
<option value="2">blue</option>
<option value="3">green</option>
</select>
Mais comment puis-je ajouter selected="selected"
et de tout attribut, je veux à mon sélectionnez options ? comme ceci:
<select name="select" style="width: 300px;" multiple="multiple" customattr="customdata">
<option style="background-color: #F00;" value="1" selected="selected">red</option>
<option style="background-color: #00F;" value="2" selected="selected">blue</option>
<option style="background-color: #0F0;" value="3">green</option>
</select>
Ma question est: comment puis-je ajouter des attr pour option
tag (pas pour select
tag) par symfony FormBuilder.
AVIS: je ne veux pas utiliser de JavaScript. Je veux utiliser symfony2 FormBuilder de personnaliser mon sélectionnez options.
source d'informationauteur Dariush Jafari
Vous devez vous connecter pour publier un commentaire.
Généralement, les données par défaut d'un champ est déterminée par la valeur stockée dans votre objet. Par exemple, si
ensuite les entrées "1" et "2" (avec les étiquettes "rouge" et "vert") est affiché par défaut. Vous pouvez également stocker cette valeur dans l'objet avant de passer à la forme:
La dernière possibilité est de remplacer la valeur par défaut stockée dans l'objet en passant l'option "données":
utiliser l'option de données comme décrit ici fo selected="selected" :
http://symfony.com/doc/current/reference/forms/types/field.html
à ur, en cas pouvait être comme ça
le nouvel élément est données paramètre le numéro du choix de la matrice de comme attribut sélectionné
Chaque
Field
dans symfony hérite de résumé type de champqui a undata
option, dans lequel vous pouvez passer l'option par défaut.Par la voie, ne passez pas à
style
choses, et pour personnalisé attrs utilisation-*
attributs.Ressemble Symfony 2.7 ajouter le support pour vous faciliter la tâche:
https://github.com/symfony/symfony/pull/14050
Ajouter dans la forme de la méthode de classe Symfony\Component\Form\AbstractType::finishView
Formulaire Symfony2 – ajouter un attribut de la balise option à sélectionner le type de champ de
Afin d'ajouter votre attribut personnalisé sur le choix, sur la base de la valeur de ce choix, pensez à utiliser
choice_attr
option de la ChoiceType champ.Par exemple, si vous souhaitez passer json codé entité de l'option, vous pouvez utiliser quelque chose comme ceci: