CakePHP:使用optgroups在select上设置默认值

时间:2011-03-07 17:20:07

标签: php html cakephp cakephp-1.3

在普通选择中,没有optgroups,CakePHP中的以下代码会将值设为默认值:

  

'selected'=> $值

一旦我有了optgroups(带有标题的select标签),我该如何设置默认值?以前的代码似乎不起作用。

3 个答案:

答案 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();' 
  )
);