CakePHP2 で セレクトボックスの option に任意の属性を追加する方法

By: Noriko YAMAMOTO

※セレクトボックスだけでなく、
フォームのヘルパーならすべて応用できると思います。

option の値は通常、数値と表示名がペアで配列になっていると思います。

通常

$Type = array(  
  '1' => 'sugar',  
  '2' => 'bread',  
  '3' => 'milk',  
);  

出力する時のヘルパー

echo $this->Form->input('', array( 
        'type'     => 'select',
        'name'   => 'Type',
        'id'         => 'Type',
        'options'  => $Type,
        'selected' => $TypeSelected,
        'label'    => false,
        'div'      => false,
        'empty' => '選択して下さい'
));

option に任意の属性値 price も出力させ、
jQuery で値を取り出して色々したい、という場合。

任意の属性値を追加する場合

$Type[] = array("id"=>1, "name"=>"sugar", "price"=>50);
$Type[] = array("id"=>2, "name"=>"bread", "price"=>200);
$Type[] = array("id"=>3, "name"=>"milk", "price"=>100);

案外小回りがきくんですね。CakePHP を見直しました。