Ciao a tutti…
mi sto cimentando con un problema che forse è più semplice di quanto sembri ma non riesco a trovare una soluzione.
io ho una view che è la seguente:
<?php
$this->pageTitle=Yii::app()->name . ' - FormMovimentiUpdate';
?>
<div><h1>Modifica Movimenti</h1></div>
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'FormMovimenti-update',
'action'=>array('site/movimentiupdate','id'=>$model->id_movimento),
'enableClientValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
),
'htmlOptions' => array('enctype' => 'multipart/form-data'),
'enableAjaxValidation'=>true,
)); ?>
<p class="note2">I campi con <span class="required2">*</span> sono obbligatori.</p>
<div class="row">
<?php echo $form->hiddenField($model,'id_associazione',array(
'value'=>Yii::app()->user->id_associazione(),
)); ?>
<?php echo $form->error($model,'id_associazione'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'id_conto'); ?>
<?php echo $form->DropDownList($model,'id_conto',CHtml::listData(TableConti::model()->findAll('id_associazione=:id',array(':id'=>Yii::app()->user->id_associazione())),'id_conto','descrizione_conto')); ?>
<?php echo $form->error($model,'id_conto'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'id_banca'); ?>
<?php echo $form->DropDownList($model,'id_banca',CHtml::listData(TableBanche::model()->findAll('id_associazione=:id',array(':id'=>Yii::app()->user->id_associazione())),'id_banca','descrizione')); ?>
<?php echo $form->error($model,'id_banca'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'data'); ?>
<?php
$form->widget('zii.widgets.jui.CJuiDatePicker', array(
'model'=>$model,
'attribute'=>'data',
'language'=>'it',
//additional js options
'options'=>array(
'showAnim'=>'slideDown',
'changeYear'=>TRUE,
'contrainInput'=>TRUE,
'yearRange'=>'-50:+50',
'currentText'=>'Now',
'datFormat'=>'dd/mm/yyyy',
),
'htmlOptions'=>array(
'style'=>'height:20px',
),
));
?>
<?php echo $form->error($model,'data'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'descrizione'); ?>
<?php echo $form->textField($model,'descrizione'); ?>
<?php echo $form->error($model,'descrizione'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'importo'); ?>
<?php echo $form->textField($model,'importo'); ?>
<?php echo $form->error($model,'importo'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'Allegato Presente'); ?>
<?php echo $form->textField($model,'allegati',array(
'disabled'=>'disabled',
)); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'Cambia Allegato'); ?>
<?php echo $form->fileField($model,'allegati'); ?>
<?php echo $form->error($model,'allegati'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'note'); ?>
<?php echo $form->textArea($model,'note',array('rows'=>8, 'cols'=>50)); ?>
<?php echo $form->error($model,'note'); ?>
</div>
<div class="row buttons">
<?php echo CHtml::submitButton('Salva Movimento'
/*array('site/movimentiupdate','id'=>$model->id_movimento),
array(
//'type'=>'GET',
//'url'=>'Yii::app()->createUrl("site/movimentiupdate", array("id"=>$data->id_movimento))',
'update'=>'#update_view',
)*/
); ?>
</div>
<?php $this->endWidget(); ?>
</div><!-- form -->
Questa view visualizzata dentro una CjuiDialog alla pressione del tasto update nella mia griglia.
questo è il settaggio del punsante dentro la griglia:
'update'=>array(
'url'=>'Yii::app()->createUrl("TableMovimenti/update", array("id"=>$data->id_movimento))',
'options'=>array( //call for dialog window
'ajax'=>array(
'type'=>'POST',
'url'=>'js:$(this).attr("href")',
'update'=>'#update_view',
),
),
),
e questo è il controller che apre il dialog:
public function actionUpdate($id)
{
$formatvalue = new FormatValue;
$model=$this->loadModel($id);
$model->importo = (string)$formatvalue->stringtodouble($model->importo);
$this->renderPartial('/site/update/UpdateMovimenti',array( //show the popup
'model'=>$model,
),FALSE,TRUE);
echo CHtml::script('$("#dialog_update").dialog("open")'); //open the popup
}
funziona tutto ma non riesco ad usare il validation dentro il Cjuidialog.
i clientValidation non ci sono problemi, ma i validateOnSubmit non riesco a visualizzarli perchè ovviamente mi si chiude il dialog.
nel mio site controller, in caso il validation abbia trovato un errore ho scritto il seguente codice:
if($model->validate()){
$this->redirect(array('site/movimenti'));
}
else{
$vi = $this->renderPartial('/site/update/UpdateMovimenti',array( //show the popup
'model'=>$model,),TRUE,TRUE);
echo CHtml::script('$("#update_view").html($vi)'); //open the popup
echo CHtml::script('$("#dialog_update").dialog("open")'); //open the popup
}
ma ovviamente non funziona.
qualcuno ha già affrontato il problema a sa darmi una soluzione?
grazie a tutti