2012-08-28 6 views
8

ho più caselle di controllo in vista Add/Edit di CakePHP, creata con:Caselle multiple in CakePHP - come impostare quali sono spuntati?

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

La mia domanda è come impostare quale sono selezionata per impostazione predefinita (cioè in thi esempio, 5, 15 e 60.)?

Grazie in anticipo!

+0

Questa è stata una risposta migliore per me: http://stackoverflow.com/questions/10243537/cakephp-multiple-select-selected-is-not-working –

+0

Questa è stata una risposta migliore per me : http://stackoverflow.com/questions/12168225/multiple-checkboxes-in-cakephp-how-to-set-which-are-checked –

risposta

1

nel controller devi mettere il valore in questo modo:

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

e sarà visualizza automaticamente la casella di controllo come selezionata.

Si prega di chiedere se non funziona per voi.

9

Come detto in altre risposte, è necessario impostare l'opzione 'selezionata'. Ciò che alcune persone non menzionano è che l'array selezionato dovrebbe contenere solo l'id in ogni elemento. Esempio:

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