Situazione ho dei contatti e dei gruppi di contatti. La relazione tra di loro è di molti a molti, tramite tabella di collegamento
contact 1:N contact_to_contact_group N:1 contact_group
Vi prego: ignorate la nomenclatura
Quando creo o modifico un contatto ho la necessità di avere una lista di tutti i gruppi disponibili, TUTTI, e PRE-SELEZIONATI solo quelli a cui il contatto appartiene.
Per esempio:
Mettiamo che ho i gruppi A, B e C e che il contatto 1 appartiene ad A e C
Nella select devo vedere
A
B
C
ma con A e C già preselezionati.
Devo fare la select 'a manina' o c'è modo di usare l'oggetto form dicendogli sia la base dati che i valori da preselezionare ? non mi riesce proprio..
Nell'ogggetto contact naturalmente c'è già una variabile publbica se si chiama $group_id_array, e quano creo la dropdown uso questa come campo. Ma o gli passo tutti i valori (e quindi non me ne seleziona nessuno), oppure gli passo quelli a cui appartiene il contatto (e quindi non mi mostra gli altri...)
Ehm.. come l'affrontereste questa cosa?
Page 1 of 1
Problema Con Dropdown A Selezione Multipla
#1
Posted 21 February 2013 - 03:23 AM
Il computer non ragiona, ma ha sempre ragione.
Ricordalo quando fai il debug
Ricordalo quando fai il debug
#2
Posted 21 February 2013 - 03:31 AM
mmm...
Io uso questo senza l'oggetto form, ma ritengo sia uguale:
Il valore che gli passi deve essere un array e fa da sé.
Io uso questo senza l'oggetto form, ma ritengo sia uguale:
Il valore che gli passi deve essere un array e fa da sé.
$r=array(1,2);
echo CHtml::dropDownList('liv', $r, array(
''=>'',
1=>'Mastri',
2=>'Conti',
3=>'Sottoconti',
4=>'Quarti livelli'
),
array('onchange'=>"this.form.submit();", 'MULTIPLE'=>'multiple')); ?>
#3
Posted 21 February 2013 - 03:39 AM
Io ho risolto così
Come dicevo nel primo post: nella lista ci devono essere TUTTI i gruppi (per la precisione tutti quelli del cliente a cui apparteiene quel contatto), ma PRESELEZIONATI ci devono essere solo quelli a cui il contatto appartiene gia.
Praticamente sto fondendo due fonti di informazioni diverse ma aumentarne il significato.
In questo modo l'utente può aggiungere o togliere un contatto da uno o più gruppi senza smattire
$my_groups = $model->contact_group;
$selected_groups = array();
foreach ($my_groups as $opt) {
$selected_groups[$opt->id] = array ('selected'=>true);
}
echo $form->dropDownListRow(
$model, 'contact_group_id',
CHtml::listData($model->client->contact_group, "id", "name"),
array(
'multiple'=>true,
'options' => $selected_groups,
)
);
Come dicevo nel primo post: nella lista ci devono essere TUTTI i gruppi (per la precisione tutti quelli del cliente a cui apparteiene quel contatto), ma PRESELEZIONATI ci devono essere solo quelli a cui il contatto appartiene gia.
Praticamente sto fondendo due fonti di informazioni diverse ma aumentarne il significato.
In questo modo l'utente può aggiungere o togliere un contatto da uno o più gruppi senza smattire
Il computer non ragiona, ma ha sempre ragione.
Ricordalo quando fai il debug
Ricordalo quando fai il debug
Share this topic:
Page 1 of 1

Help












