在普通选择中,没有optgroups,CakePHP中的以下代码会将值设为默认值:
'selected'=> $值
一旦我有了optgroups(带有标题的select标签),我该如何设置默认值?以前的代码似乎不起作用。
答案 0 :(得分:7)
echo $this->Form->input('group_id', array('type'=>'select','default'=>'2'));
导致生成以下HTML:
<option value="2" selected="selected">Managers</option>
现在显示选项二而不是任何其他选项。
答案 1 :(得分:5)
不要使用“value”或“selected”等。这会破坏POST中的表单。 如果必须使用视图级别,请使用“default”。
更好的方法是从控制器设置它们:
if ($this->RequestHandler->is('post')) {
...
} else {
$this->data['Model']['field'] = 2; // e.g.
}
有关详细信息,请参阅http://www.dereuromark.de/2010/06/23/working-with-forms/
答案 2 :(得分:2)
echo $this->Form->input('point', array(
'label'=>'',
'options'=>$list_of_options,
'value'=>$default_value,
'empty'=>'--select--',
'onchange'=>'some_action();'
)
);