view/clienti/form
<?php echo $form->dropdownlist($clienti, 'provvigioni_id', $provvigioni, array('empty' => 'Nessuna Provvigione')); ?>
<?php
echo CHtml::ajaxLink('Nuovo', $this->createUrl('provvigioni/addnew'), array(
'onclick' => '$("#jobDialog").dialog("open"); return false;',
'update' => '#jobDialog'
), array('id' => 'showJobDialog'));
?>
<div id="jobDialog"></div>
controlller/provvigioni
public function actionAddnew() {
$model = new Provvigioni;
// 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['Provvigioni'])) {
$flag = false;
$model->attributes = $_POST['Provvigioni'];
if ($model->save()) {
//Return an <option> and select it
echo CHtml::tag('option', array(
'value' => $model->id,
'selected' => true
), CHtml::encode($model->descrizione), true);
}
}
if ($flag) {
Yii::app()->clientScript->scriptMap['jquery.js'] = false;
Yii::app()->clientScript->scriptMap['jquery.min.js'] = false;
$this->renderPartial('createDialog', array('model' => $model,), false, true);
}
}
view/provvigioni/_formDialog
<section class="grid_12">
<div class="block-border">
<?php
$form = $this->beginWidget('CActiveForm', array(
'id' => 'provvigioni-form',
'enableAjaxValidation' => false,
));
?>
<div class="block-content form">
<h1>Aggiungi Provvigione</h1>
<br/>
<div class="columns">
<?php echo $form->labelEx($provvigioni, 'descrizione'); ?>
<?php echo $form->textField($provvigioni, 'descrizione', array('size' => 45, 'maxlength' => 45)); ?>
</div>
<div class="columns">
<?php echo $form->labelEx($provvigioni, 'valore'); ?>
<?php echo $form->textField($provvigioni, 'valore', array('size' => 3, 'maxlength' => 3)); ?>
</div>
<?php echo CHtml::ajaxSubmitButton('Crea', CHtml::normalizeUrl(array('provvigioni/addnew', 'render' => true)), array('success' => 'js: function(data) {
$("#Clienti_provvigioni_id").append(data);
$("#jobDialog").dialog("close");
}'), array('id' => 'closeJobDialog')); ?>
</div>
<?php $this->endWidget(); ?>
</div>
</section>
view/provvigioni/createDialog
<?php
$this->beginWidget('zii.widgets.jui.CJuiDialog', array(
'id' => 'jobDialog',
'options' => array(
'autoOpen' => true,
'modal' => 'true',
'width' => 'auto',
'height' => 'auto',
),
));
echo $this->renderPartial('_formDialog', array('provvigioni' => $model));
?>
<?php $this->endWidget('zii.widgets.jui.CJuiDialog'); ?>