2014年03月30日

[CakePHP2.x] フォームのセレクトボックスで複数選択やグループ作成する

セレクトボックスには、色々なパターンがあるので、簡単に調べたことを記載する。

単一選択のセレクトボックス

複数の選択肢から1つを選ぶセレクトボックス。
配列の1番目が値で、2番目が表示される文字列。

$list = array('1' => 'abc, '2' => 'efg', '3' => 'hij');
$form->input('hogehoge', array(
  'type' => 'select',
  'options' => $list
));

実行結果:

単一のセレクトボックス実行結果

複数選択可能なセレクトボックス

shift押しながら選択すると、複数選択できるセレクトボックス。
'multiple' => trueを指定すると出来る。

$list = array('1' => 'abc, '2' => 'efg', '3' => 'hij');
$form->input('hogehoge', array(
  'type' => 'select',
  'options' => $list
));

実行結果:

複数選択可能なセレクトボックス実行結果

グループ化したセレクトボックス

グループ化したセレクトボックスは、配列を2次元配列にうすると可能になる。

$selectValue = array('group1' =>array('1'=>'abc', '2'=>'def', '3'=>'ghi'),'group2' => array('4' => 'opq','5' => 'rst'));
$form->input('hogehoge', array(
  'type' => 'select',
  'options' => $list
));

実行結果:

グループ化したセレクトボックス実行結果 

関連記事

posted by lute at 14:49| Comment(0) | TrackBack(0) | CakePHP | このブログの読者になる | 更新情報をチェックする

[CakePHP2.x] フォームでセレクトボックスのデフォルト値を変更する

ユーザーに入力してもらうフォームで、セレクトボックスを作ると、デフォルトで選択されるのは配列の一番上になってしまう。
下記例だと、「abc」が選択された状態になっている。

$list = array('1' => 'abc, '2' => 'efg', '3' => 'hij');
$form->input('hogehoge', array(
  'type' => 'select',
  'options' => $list
));

が、ユーザーが前画面で見ていた情報を引き継ぎたいとか何だとか、デフォルト値を変えたいシーンがあると思う。
その時、どうやるかというとselectedで配列の番号を渡す。
以下の例だと、「efg」が選択された状態にデフォルトがなっている。

$list = array('1' => 'abc, '2' => 'efg', '3' => 'hij');
$form->input('hogehoge', array(
  'type' => 'select',
  'options' => $list,
  'selected' => 2
));

関連記事>

posted by lute at 12:18| Comment(0) | TrackBack(0) | CakePHP | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。