twigのリストボックスについて

1,202 views
Skip to first unread message

KON

unread,
Aug 22, 2012, 9:09:34 PM8/22/12
to symfony-...@googlegroups.com
はじめまして。
最近Symfony2の勉強を始め、このMLに登録しました近藤です。
今後機会があればいろいろなイベントに参加したいと思いますので、よろしくお願いします。

早速質問なのですが、現在以下のように twig を用いてリストボックスを実装しています。


$choiceList = array(
            'choices' => array('01' => 'ほげほげ', '02' => 'hogehoge', '03' => 'HOGEHOGE'),
            );           
$formBuilder->add('hogehogeList', 'choice', $choiceList);

{{ form_widget(form.hogehogeList) }}


このリストボックスを用いてやりたい流れが、
①リストボックスで「hogehoge」を選択
②submit して画面を再描画
③最初からリストボックスで「hogehoge」を選択状態

②の時点で選択内容を取得することはできました。
ただ、再描画時に選択状態にする項目を設定する方法がどうしてもわかりません。
リストの内容を作成する時、オプションで「preferred_choices」を使用することも考えましたが、
これだとリストの表示順が変わってしまうので、残念ながらNGです。

最終手段としては以下のどちらかの方法を採用しようと思っています。
①再描画時に JavaScript で選択状態にする
②form_wiget を使わず、twig にリストを渡して「option」作成時に選択データとvalueが同じであれば「selected」出力

勘違いしている部分や上記以外のエレガントな実装方法があれば、ご教授のほど、よろしくお願いします。

Shin Ohno

unread,
Aug 22, 2012, 9:19:47 PM8/22/12
to symfony-...@googlegroups.com
ども。はじめまして。
大野です。

こんな感じかな。form を build する際に初期値で渡してあげれば、それが選択されます。
submit した時点では、する前の値が build する際にセットされているため、それが選択されている状態になります。

$choiceList = array(
'choices' => array('01' => 'ほげほげ', '02' => 'hogehoge',
'03' => 'HOGEHOGE'),
);
$formBuilder = $this->createFormBuilder(array('hogehogeList' => '02'));
$formBuilder->add('hogehogeList', 'choice', $choiceList);

ご参考にー。

2012/8/23 KON <kon....@gmail.com>:
> --
> -------------------
> Symfonyに関する疑問・質問、ユーザー会の活動やサイトに対するご意見、その他雑談など、お気軽にMLへ投稿してください!
>
>
> 日本Symfonyユーザー会
> http://www.symfony.gr.jp/
>
> 日本Symfonyユーザー会メーリングリスト
> http://groups.google.com/group/symfony-users-ja

Shin Ohno

unread,
Aug 22, 2012, 9:24:58 PM8/22/12
to symfony-...@googlegroups.com
大野です。
われながら日本語がおかしい。。。

> submit した時点では、する前の値が build する際にセットされているため、それが選択されている状態になります。
submit した時点では、された値が form
build時にセットされるため、バリデーションエラー等でそのフォームが表示されるときなどでは、値が選択された状態で表示されます。

と読み替えてください。
ではー。

2012/8/23 Shin Ohno <ohno...@gmail.com>:

KON

unread,
Aug 22, 2012, 10:06:21 PM8/22/12
to symfony-...@googlegroups.com
近藤です。

早速の返信ありがとうございます。
毎回新規で作成してしたために値が飛んでいたようです・・・。
正しくセットするように修正したら解決しました。
ありがとうございました!!

2012年8月23日木曜日 10時24分58秒 UTC+9 ganchiku:
Reply all
Reply to author
Forward
0 new messages