CakePHP создает радио кнопки - PullRequest
       0

CakePHP создает радио кнопки

9 голосов
/ 09 февраля 2012

Как я могу создать две радиокнопки, предварительно выбрав одну из них на основе значения $ 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 ]

27 голосов
/ 10 февраля 2012

Все просто .. используйте значение по умолчанию для $ 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

3 голосов
/ 09 февраля 2012

Вы должны предварительно выбрать значение для любого поля формы из контроллера

@ см. http://www.dereuromark.de/2010/06/23/working-with-forms/ «Значения по умолчанию»

1 голос
/ 09 февраля 2012

Это путь

    $attributes = array();
    $options = array('standard' => 'Standard', 'pro' => 'Pro');

    if($foo === 'pro') {
       $attributes['default'] = 'pro';
    }

    echo $this->Form->radio('type', $options, $attributes); 

Лучшее решение - установить значения по умолчанию в контроллере, как указал Марк.Таким образом, вы можете установить значения по умолчанию в конце действия вашего контроллера, как ...

Давайте предположим, что ваша модель Member с membership_type field

   $this->data['Member']['membership_type '] = 'pro';
0 голосов
/ 04 декабря 2012
$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);

НТН

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...