Ciao a tutti e ringrazio in anticipo chiunque possa darmi qualche indicazione…
sto avendo problemi con due dropdownlist dipendenti l’uno dall’altro…il problema è questo , vorrei che dal dropdown delle provincie mi selezionasse i comuni in una seconda dropdown e vorrei che entrambe i campi ‘provincia’ e ‘citta’ venissero salvati.
Per maggior chiarezza vi posto le tabelle del DB più il codice
Queste sono le mie tre tabelle del DB:
CREATE TABLE IF NOT EXISTS `ingegneri` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nome` varchar(30) NOT NULL,
`cognome` varchar(30) NOT NULL,
`codicefiscale` varchar(16) NOT NULL,
`telfisso` varchar(25) DEFAULT NULL,
`telmobile` varchar(25) NOT NULL,
`annolaurea` int(4) NOT NULL,
`laureaing_id` int(11) NOT NULL,
`specializzazione` varchar(45) DEFAULT NULL,
`matricola` varchar(20) NOT NULL,
`annoisc` int(4) NOT NULL,
`provincie_id` int(11) DEFAULT NULL,
`citta_id` int(11) DEFAULT NULL,
`users_id` int(11) NOT NULL,
`note` varchar(120) DEFAULT NULL,
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `matricola` (`matricola`),
UNIQUE KEY `users_id` (`users_id`),
UNIQUE KEY `telmobile` (`telmobile`,`matricola`,`users_id`),
KEY `fk_ingegneri_citta` (`citta_id`),
KEY `fk_ingegneri_laureaing` (`laureaing_id`),
KEY `fk_ingegneri_provincie` (`provincie_id`)
)
CREATE TABLE IF NOT EXISTS `provincie` (
`id` int(11) NOT NULL,
`provincia` varchar(30) NOT NULL,
PRIMARY KEY (`id`)
)
CREATE TABLE IF NOT EXISTS `citta` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`provincie_id` int(11) NOT NULL,
`comune` varchar(30) NOT NULL,
PRIMARY KEY (`id`),
KEY `fk_citta_provincie` (`provincie_id`)
)
Questo è il codice di ingengeri/_form:
<div class="row">
<?php echo $form->dropDownList($model,'provincie_id', CHtml::listData(Provincie::model()->findAll(), 'id','provincia'), array('empty'=>'--scegli una provincia--'));
array(
'prompt'=>'Seleziona una citta',
'ajax' => array(
'type'=>'POST',
'url'=>CController::createUrl('ingegneri/loadcities'),
'update'=>'#city_name',
'data'=>array('provincie_id'=>'js:this.value'),
)); ?>
<?php
echo CHtml::dropDownList('city_name','', array(),
array('prompt'=>'Select City'));
?>
</div>
Questo è il codice del controller di ingegneri:
public function actionLoadcities()
{
$data=Citta::model()->findAll('citta_id=:citta_id',
array(':citta_id'=>(int) $_POST['citta_id']));
$data=CHtml::listData($data,'id','city_name');
echo "<option value=''>Select City</option>";
foreach($data as $value=>$city_name)
echo CHtml::tag('option', array('value'=>$value),
CHtml::encode($city_name),true);
}