CakePHP:使用optgroups设置select的默认值

CakePHP:使用optgroups设置select的默认值,php,html,cakephp,cakephp-1.3,Php,Html,Cakephp,Cakephp 1.3,在没有optgroup的普通select上,CakePHP中的以下代码将使一个值成为默认值: '所选'=>$value 一旦我有了optgroups(一个带有标题的select标记),如何设置默认值?前面的代码似乎不起作用。您可以这样尝试: echo $this->Form->input('group_id', array('type'=>'select','default'=>'2')); 导致生成以下HTML: <option value="2" select

在没有optgroup的普通select上,CakePHP中的以下代码将使一个值成为默认值:

'所选'=>$value


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

您可以这样尝试:

echo $this->Form->input('group_id', array('type'=>'select','default'=>'2'));
导致生成以下HTML:

<option value="2" selected="selected">Managers</option>
管理者
现在将显示选项二,而不是任何其他选项。

不要使用“值”或“选定”等。这将在POST中打断您的表单。 如果必须使用视图级别,请使用“默认”

更好的方法是从控制器设置它们:

if ($this->RequestHandler->is('post')) {
    ...
} else {
    $this->data['Model']['field'] = 2; // e.g.
}

有关详细信息,请参见

谢谢您的帮助'empty'=>'--选择--,您救了我一天!
echo $this->Form->input('point', array(
    'label'=>'',
    'options'=>$list_of_options,
    'value'=>$default_value,
    'empty'=>'--select--', 
    'onchange'=>'some_action();' 
  )
);