Salve a tutti!
Ho seguito questo tutorial ma ho il problema che non si aggiorna la dropdownlist (nel database il record viene invece correttamente inserito).
Ho l’impressione che ci sia un problema di id dei div…ma non ne sono sicuro…suggerimenti?
la funzione del controller
public function actionAddnew() {
$model=new Societa;
// Ajax Validation enabled
$this->performAjaxValidation($model);
// Flag to know if we will render the form or try to add
// new jon.
$flag=true;
if(isset($_POST['Societa']))
{ $flag=false;
$model->attributes=$_POST['Societa'];
if($model->save()) {
//Return an <option> and select it
echo CHtml::tag('option',array (
'value'=>$model->id, //qui ho l'impressione che l'id sia vuoto..ma al momento non è il problema
'selected'=>true
),CHtml::encode($model->Nome),true);
}
}
if($flag) {
Yii::app()->clientScript->scriptMap['jquery.js'] = false;
$this->renderPartial('createDialog',array('model'=>$model,),false,true);
}
}
il codice della _formDialog.php
..<div class="row buttons">
<?php echo CHtml::ajaxSubmitButton(Yii::t('job','Create Job'),CHtml::normalizeUrl(array('societa/addnew','render'=>false)),array('success'=>'js: function(data) {
$("#Person_societa").append(data);
$("#jobDialog").dialog("close");
}'),array('id'=>'closeJobDialog')); ?>
</div>..
la createDialog
<?php
$this->beginWidget('zii.widgets.jui.CJuiDialog',array(
'id'=>'jobDialog',
'options'=>array(
'title'=>Yii::t('job','Crea Associazione'),
'autoOpen'=>true,
'modal'=>'true',
'width'=>'auto',
'height'=>'auto',
),
));
echo $this->renderPartial('_formDialog', array('model'=>$model)); ?>
<?php $this->endWidget('zii.widgets.jui.CJuiDialog');?>
il codice della form di principale (quella di partenza)
<div class="row">
<?php echo $form->labelEx($model,'societa'); ?>
<div id="job">
<?php echo $form->dropDownList($model,'societa',CHtml::listData(Societa::model()->findAll(),'id','Nome'),array('prompt'=>'Select')); ?>
<?php echo CHtml::ajaxLink(Yii::t('job','Create Job'),$this->createUrl('societa/addnew'),array(
'onclick'=>'$("#jobDialog").dialog("open"); return false;',
'update'=>'#jobDialog'
),array('id'=>'showJobDialog'));?>
<div id="jobDialog"></div>
</div>
<?php echo $form->error($model,'societa'); ?>
</div>