A riecomi realtebo. Pensavo a una cosa. Come saprai bene credo…in italia il sistema di cap è uno schifo. Infatti piu paesi della stessa provincia hanno lo stesso cap.
Esempio banale la provincia dove vivo io…Viterbo.
Cap 01010 ce l’ hanno Blera, V.S.G. in Tuscia, Barbarano Romano etc.
Ora ho pensato una cosa (dopo aver letto mille forum e dicerie sul web).
Ho pensato di dividere i cap in 4 tabelle.
Ora come ora ho una singola tabella chiamata cap con questi campi:
id - cap - comune - citta - provincia.
Vorrei dividerla cosi
Prima tabella chiamata Cap:
id_cap - cap
Seconda tabella chiamata Comuni:
id_comuni - comune - id_cap
Terza tabella chiamata provincie:
id_provincie - provincia - id_comuni.
Quarta tabella registro:
id_registro - id_cap - id_comuni - id_provincie
Ovviamente ci saranno le relazioni come puoi notare dalle chiavi delle tabelle.
Quindi nel form potrò creare i dropdown in questo modo:
<?php echo $form->labelEx($model,''); ?>
<?php $form->dropDownList($model, 'id_cap')
CHtml::listData(Cap::model()->findAll(), 'id_cap', 'cap'),
array(
'ajax'=>array(
'type'=>POST
'ulr'=>CController::createUrl('Registro/SelezionaComune'),
'update'=>'#'.CHtml::actived('$model', 'id_comuni') ;?>
<?php echo "<font color='#000000'><b>" .$form->error($model,'id_cap')."</b></font>"; ?>
Creo la mia funzione nel controller in questo modo:
public function actionSelezionaComune
{
id_uno = $_POST['Registro']['id_cap'] //ricevo il parametro tramite POST dal form
$lista = Comuni::model()->finAll('id_cap = $id_uno', array('id_uno'=>$id_uno)); //Ricevuto il parametro lo lo passò al modello e preparo la lista dei campi che si trovano in "Comuni"
$lista = CHtml::listData($lista, 'id_cap', 'comune'); //visualizzo il campo in base a un suo attributo in questo caso il nome del comune e saranno visibili solo i campi in base alla scelta falta dal "dropdown 1 - (cap)"
foeeach($lista as $scelta => $comune){
echo CHtml::tag('option', array('value'=>$scelta),CHtml::encode($comune), true);
}
Ovviamente il primo dropdown viene visualizzato in automatico quindi non creo nessuna funziona.
Fatto questo ripeto i passi per il dropdown "Provincie" e la sua action nel controller (che non scrivo sennò mi dilungo troppo).
Ora ti prego…non dirmi che sto sparando caxxate…dimmi che stò andando nella giusta direzione. Mentimi pure ma non dirmi che sto sbagliando ghghghhghh. Scherzo ovviamente…dimmi la verità bella o brutta che sia
Ho fatto una prova con 4 campi creati velocemente e i menu funzionano. Però certo è che mi farebbe piacere ricevere un’ opinione da parte di qualcuno più esperto di me prima di fare questa operazione e stravolgere l’ app.
Se hai (o avete) una soluziona più rapida e indolore (che non stravolga il lavoro svolto fino ad adesso) sarei felice di valutarla
Come sempre grazie…e scusate lo smartellamento di @@ che a volte faccio