Несколько флажков в CakePHP - как установить, какие из них установлены?


У меня есть несколько флажков в представлении добавления/редактирования CakePHP, созданных с помощью:

echo $this->Form->input('email_warning_chb', array('type'=>'select', 'multiple'=>'checkbox', 'label'=> __('Email notice'), 'class'=>'multiple-chb', 'options'=> array('title...'=>array( '5'=>'5 days', '15'=>'15 days', '30'=>'30 days', '60'=>'60 days');

Мой вопрос в том, как установить, какие из них проверяются по умолчанию (т. Е. в этом примере 5, 15 и 60)?

Заранее благодарю вас!

Author: user198003, 2012-08-29

3 answers

Это похоже на это

Cakephp: Как установить флажок "проверено"?

Где $selected содержит выбранные значения

 3
Author: Community, 2017-05-23 12:26:08

Как сказано в других ответах, вы должны установить опцию "выбрано". Что некоторые люди не упоминают, так это то, что выбранный вами массив должен содержать только идентификатор в каждом элементе. Пример:

$selectedWarnings = $this->Warning->find('list', array(
  'fields' => array('id')
));


echo $this->Form->input('email_warning_chb', array(
    'label' => 'Email Notice',
    'type' => 'select',
    'multiple' => 'checkbox',
    'options' => $warnings,
    'selected' => $selectedWarnings
  ));
 11
Author: Pent, 2013-04-05 00:59:32

В вашем контроллере вы должны указать значение следующим образом:

$this->request->data['Model']['email_warning_chb'] = array(5,15,60);

И он автоматически отобразит флажок как выбранный.

Пожалуйста, спросите, не работает ли это для вас.

 1
Author: Krishna, 2012-08-29 08:27:20