Yii Framework Forum: Validación Ajax En Ventana Modal - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Validación Ajax En Ventana Modal Rate Topic: -----

#1 User is offline   Juan D. 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 27
  • Joined: 30-April 13

Posted 21 June 2013 - 02:27 PM

Buenas tardes para todos,

El título es muy diciente, tengo un problema referente a la validación de un formulario en una ventana modal de BootStrap, la idea es que valide según las reglas alojadas en el modelo pero no sé que sucede pues sigue ejecutando el action saltándose la validación Ajax.

Después de esta duda me gustaría saber que en caso tal de realizar un submit desde esta ventana modal, esta ventana no se cerrara con el fin de visualizar la validación proveniente de la respuesta del servidor.

Muchas gracias.
0

#2 User is offline   Aaron Meis S. 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 10
  • Joined: 21-June 13

Posted 21 June 2013 - 05:55 PM

podrias mostrar algo tu codigo ?? para poder analizar que esta pasando saludos !!
0

#3 User is offline   Juan D. 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 27
  • Joined: 30-April 13

Posted 22 June 2013 - 10:25 AM

Según he leído el problema se genera en varias personas al llamar una vista por el método renderPartial,

Action controlador:
 public function actionRegistro()
	{
		
            $model=new Usuario;
            $bool=false;
            $this->performAjaxValidation($model);
               
               
                 if(isset($_POST['Usuario']))
		{
                     $model->usu_estado=2;
                     
                     $model->attributes= General::arrayChangeValuesToUpper($_POST['Usuario']);
                  
		     if($model->validate()){
                        
                         if($model->save(false)){
                             $bool=true;
                             $this->renderPartial('registro',array('model'=>$model,'bool'=>$bool));
                         }
				
                     }
                     
		}
                
                
                $this->renderPartial('registro',array('model'=>$model,'bool'=>$bool));
	}



Regla del modelo:
public function rules()
	{
		// NOTE: you should only define rules for those attributes that
		// will receive user inputs.
		return array(
			array('tid_codigo, usu_identificacion, fic_codigo, usu_nombre, usu_apellidos, usu_correo, userid, usu_clave, pre_codigo, usu_res_secr, confiPassword', 'required'),
			array('pre_codigo', 'numerical', 'integerOnly'=>true),
			array('tid_codigo', 'length', 'max'=>2),
			array('usu_identificacion', 'length', 'max'=>12),
			array('fic_codigo', 'length', 'max'=>8),
			array('usu_nombre, usu_res_secr', 'length', 'max'=>30),
			array('usu_apellidos', 'length', 'max'=>50),
			array('usu_correo', 'length', 'max'=>80),
                        array('usu_correo','email'),
			array('userid', 'length', 'max'=>15,'min'=>6),
                        array('userid','unique','className'=>'Usuario'),
                        array('usu_clave','compare','compareAttribute'=>'confiPassword','operator'=>'==','message'=>  Yii::t('es', 'The passwords are not the same')),
			array('usu_clave, confiPassword', 'length', 'max'=>12,'min'=>6),
			array('usu_estado', 'length', 'max'=>9),
			array('usu_ult_acce, usu_fec_crea, usu_fec_modi', 'safe'),
			// The following rule is used by search().
			// Please remove those attributes that should not be searched.
			array('tid_codigo, usu_identificacion, fic_codigo, usu_nombre, usu_apellidos, usu_correo, userid, usu_clave, pre_codigo, usu_res_secr, usu_estado, usu_ult_acce, usu_fec_crea, usu_fec_modi', 'safe', 'on'=>'search'),
		);
	}


Vista llamada por renderPartial:
<div class="sectionRegistro">
                <fieldset class="formu">

                    <legend style="text-align: center;"><b>REGISTRE SUS DATOS PERSONALES</b></legend>
                    <div class="form" style="margin-left: 30%;">
                         <?php echo CHtml::image(Yii::app()->theme->baseUrl.'/img/hermeslogo.png','', array('width'=>'200px','height'=>'200px', 'style'=>'margin-left: 80px;'));?>
                                <?php 
                                
                                $form=$this->beginWidget('CActiveForm', array(
                                        'id'=>'usuario-form',
                                        'enableAjaxValidation'=>true,
                                        'enableClientValidation'=>true,
                                        'clientOptions'=>array(
                                                'validateOnSubmit'=>true,
                                        ),
                                )); 
                                    
                                echo $form->errorSummary($model); 
                               
                                ?>

                        <p class="note"><?php echo Yii::t('es', 'Fields with'); ?> <span class="required">*</span> <?php echo Yii::t('es', 'are required'); ?>.</p>

                        
                                        <div class="row">
                                                <?php echo $form->labelEx($model,Yii::t('es','fic_codigo')); 
                                                      echo $form->dropDownList($model,'fic_codigo', CHtml::listData(Ficha::model()->findAll(), 'fic_codigo', 'fic_nombre'),array('empty'=>'-- Seleccione --')); 
                                                      echo $form->error($model,'fic_codigo'); ?>
                                        </div>
                        
                                         <div class="row">
                                                <?php echo $form->labelEx($model,Yii::t('es','tid_codigo')); 
                                                      echo $form->dropDownList($model,'tid_codigo', CHtml::listData(TipoIdentificacion::model()->findAll(), 'tid_codigo', 'tid_nombre'),array('empty'=>'-- Seleccione --')); 
                                                      echo $form->error($model,'tid_codigo'); ?>
                                        </div>
                        
                                        <div class="row">
                                                <?php echo $form->labelEx($model,Yii::t('es','usu_identificacion')); 
                                                      echo $form->textField($model,'usu_identificacion'); 
                                                      echo $form->error($model,'usu_identificacion'); ?>
                                        </div>
                                        <div class="row">
                                                <?php echo $form->labelEx($model,Yii::t('es','usu_nombre')); 
                                                      echo $form->textField($model,'usu_nombre'); 
                                                      echo $form->error($model,'usu_nombre'); ?>
                                        </div>
                        
                                        <div class="row">
                                               <?php
                                                    echo $form->labelEx($model,Yii::t('es','usu_apellidos')); 
                                                      echo $form->textField($model,'usu_apellidos'); 
                                                      echo $form->error($model,'usu_apellidos');
                                               ?>
                                        </div>
                        
                                         <div class="row">
                                                <?php echo $form->labelEx($model,  Yii::t('es','usu_correo')); 
                                                      echo $form->textField($model,'usu_correo'); 
                                                      echo $form->error($model,'usu_correo'); ?>
                                        </div>
                        
                                        <div class="row">
                                               <?php
                                                    echo $form->labelEx($model,Yii::t('es','userid')); 
                                                      echo $form->textField($model,'userid'); 
                                                      echo $form->error($model,'userid');
                                               ?>
                                        </div>
                        
                                       <div class="row">
                                               <?php
                                                    echo $form->labelEx($model,Yii::t('es','usu_clave')); 
                                                      echo $form->PasswordField($model,'usu_clave'); 
                                                      echo $form->error($model,'usu_clave');
                                               ?>
                                       </div>
                        
                                        <div class="row">
                                               <?php
                                                      echo $form->labelEx($model,Yii::t('es','confiPassword')); 
                                                      echo $form->PasswordField($model,'confiPassword'); 
                                                      echo $form->error($model,'confiPassword');
                                               ?>
                                       </div>
                        
                                        <div class="row">
                                                <?php echo $form->labelEx($model,Yii::t('es','pre_codigo')); 
                                                      echo $form->dropDownList($model,'pre_codigo', CHtml::listData(PreguntaSecreta::model()->findAll(), 'pre_codigo', 'pre_pregunta'),array('empty'=>'-- Seleccione --')); 
                                                      echo $form->error($model,'pre_codigo'); ?>
                                        </div>
                        
                                           <div class="row">
                                               <?php
                                                    echo $form->labelEx($model,Yii::t('es','usu_res_secr')); 
                                                      echo $form->textField($model,'usu_res_secr'); 
                                                      echo $form->error($model,'usu_res_secr');
                                               ?>
                                       </div>
                                       
       
                                      

                                        <div class="row buttons" style="margin-left: 10%;">
                                                <?php echo CHtml::submitButton(Yii::t('es', 'Register'),array('class'=>'btn btn-primary')); ?>
                                        </div>
                                       <br/>
                                        <div class="row" style="margin-left: 10%;">
                                                <?php echo CHtml::link(CHtml::button('Regresar al ingreso',array('class'=>'btn btn-success')), 'login/index'); ?>
                                        </div>

                                <?php $this->endWidget(); ?>
                                </div><!-- form -->

                </fieldset>          
          </div>



El problema debe ser teórico creo yo, por ello seguiré leyendo sobre esta función y como funcionan estas validaciones por fuera de un template.
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users