如何根据$ foo的值创建两个单选按钮,其中一个是预先选择的?下面的代码片段可以很好地创建它们,但不会选择两个按钮中的任何一个。
$options = array('standard' => ' Standard','pro' => ' Pro');
$attributes = array(
'legend' => false,
'value' => false,
'checked'=> ($foo == "pro") ? FALSE : TRUE,
);
echo $this->Form->radio('type',$options, $attributes);
答案 0 :(得分:26)
这很简单..使用$ foo的默认值:
$options = array(
'standard' => 'Standard',
'pro' => 'Pro'
);
$attributes = array(
'legend' => false,
'value' => $foo
);
echo $this->Form->radio('type', $options, $attributes);
正如您在文档中看到的那样:
http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html#FormHelper::radio
答案 1 :(得分:3)
您应该从控制器中预选任何表单字段的值
@see http://www.dereuromark.de/2010/06/23/working-with-forms/“默认值”
答案 2 :(得分:1)
这是要走的路
$attributes = array();
$options = array('standard' => 'Standard', 'pro' => 'Pro');
if($foo === 'pro') {
$attributes['default'] = 'pro';
}
echo $this->Form->radio('type', $options, $attributes);
更好的解决方案是在Mark指出时设置控制器中的默认值。这样你可以在控制器动作结束时设置默认值,如...
假设您的模型为Member
membership_type field
$this->data['Member']['membership_type '] = 'pro';
答案 3 :(得分:0)
$options = array('Y'=>'Yes','N'=>'No');
$attributes = array('div' => 'input', 'type' => 'radio', 'options' => $options, 'default' => 'Y');
echo $this->Form->input('add to business directory',$attributes);
HTH