2012-08-28 5 views
8

Mam kilka pól wyboru w CakePHP za dodawać/edytować widzenia, tworzony z:Wiele pól wyboru w CakePHP - jak ustawić, które są zaznaczone?

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'); 

Moje pytanie brzmi, jak ustawić, który z nich jest domyślnie zaznaczone (czyli w thi przykład, 5, 15 i 60).?

Z góry dziękuję!

+0

Było to lepsze rozwiązanie dla mnie: http://stackoverflow.com/questions/10243537/cakephp-multiple-select-selected-is-not-working –

+0

To był dla mnie lepszą odpowiedź : http://stackoverflow.com/questions/12168225/multiple-checkboxes-in-cakephp-how-to-set-which-are-and-checked –

Odpowiedz

1

w kontrolerze trzeba umieścić wartość takiego:

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

i będzie automatycznie wyświetlaj pole wyboru jako wybrane.

Proszę zapytać, czy nie działa dla Ciebie.

9

Jak powiedziano w innych odpowiedziach, powinieneś ustawić opcję "wybraną". Czego niektórzy ludzie nie wspominają, że wybrana tablica powinna zawierać tylko identyfikator w każdym elemencie. Przykład:

$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 
));