CakePHP创建单选按钮

时间:2012-02-09 10:45:47

标签: cakephp

如何根据$ 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);

4 个答案:

答案 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