Eseguire il Validation dentro una CjuiDialog

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

ciao, non sarà per questo ma prova a

dargli un nome al zii.widgets.jui.CJuiDatePicker,

‘name’=>‘FormMovimenti-update[date]’,

:mellow:

Se non l’hai già trovata la soluzione è qua http://www.yiiframework.com/forum/index.php/topic/9080-solved-how-to-enable-form-validation-in-jui-dialog/