Home > CakePHP | PHP > CakePHPでのマルチチェックボックス

CakePHPでのマルチチェックボックス

  • Posted by: エガシラリュウジ
  • 2007年6月23日 17:24
  • CakePHP | PHP

CakePHPでは、標準で、複数のチェックボックスを処理する為のヘルパーが用意されていない。
habtmというヘルパーが公開されてたがうまく動作しないので、うまく動くように調整した。

◆ habtm元ソース

◆ habtm修正後ソース
 


【利用方法】
1.habtm修正後ソースの設置
上記リンクよりダウンロードし、app/views/helpers に「habtm.php」として設置。
 


2.tags.ini.phpの設置
app/config に、「tags.ini.php」というファイルを作成し、以下の内容を記述。

; Tag template for a input type='checkbox ' tag.
checkboxmultiple = "<input type="checkbox" name="data[%s][%s][%s]" %s/> %s"


3.viewでの利用(Smartyを利用している場合)

{assign_assoc var='fld' value='value1=>viewdata1,value2=>viewdata2'}
{$input->checkboxMultiple('table/fld1',$fld1,null,null,null,false)}

こんな感じで利用します。
Smartyで利用する場合、「assign_assoc」というView上で、配列を扱う為のSmartyのプラグインを用意するか、コントローラー側で配列データを用意してあげる必要があります。
 


4.値の処理
上記の例で、二つともチェックを入れた場合、以下のような状態でコントローラーに渡されますになります。

$this->data['table']['fld1'][0][value1]
$this->data['table']['fld1'][1][value2]

※ viewdataはあくまで表示用ですので、送信データには含まれません。
 


後は、$data['table']['fld1']に対して一括でバリデーションをかけるなり、カンマ区切りでデータベースに保存するなりご自由にどうぞ。

Comments:0

コメントフォーム

コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。

Trackbacks:0

TrackBack URL for this entry
http://blog.non-style.com/mt/mt-tb.cgi/35
Listed below are links to weblogs that reference
CakePHPでのマルチチェックボックス from Webプログラマの苦悩

Home > CakePHP | PHP > CakePHPでのマルチチェックボックス

Links
Search
Feeds
Tag Cloud

Return to page top