[Solucionado]Mostrar Alerta Desde Controlador

Buenas Tardes Comunidad!!!.. Una vez más buscando ayuda… Lo que necesito hacer es que me envie una alerta al momento de comparar dos fechas en el controlador y he probado varias cosas y nada…

En la vista tengo:


<?php

                        echo 'Fecha de Culminación: <span class="required">*</span> ';

                        if ($model['equi_cul'] != '') {

                            $model['equi_cul'] = date('d-m-Y', strtotime($model['equi_cul']));

                        }

                        $this->widget('zii.widgets.jui.CJuiDatePicker', array(

                            'model' => $model,

                            'attribute' => 'equi_cul',

                            'name' => 'equi_cul',

                            'value' => $model['equi_cul'],

                            'language' => 'es',

                            'htmlOptions' => array('readonly' => "readonly"),

                            'options' => array(

                                'defaultDate' => $model->equi_cul,

                                'dateFormat' => 'dd-mm-yy',

                                'onSelect'=> 'js: function() {'. 

                                     CHtml::ajax(array(

                                             'type'=>'POST',

                                             'datatype'=>'json',

                                             'url'=> CController::createUrl('datos_aud/Eq'), 

                                             'success'=> 'function(data){

                                                     $("#datos_aud_d_equ").val(data);

                                                     $("#datos_aud_d_hab").val(data); 

                                                    

                                                  }',)               

                                        ).'}',

                                      )

    

                                     ))

                            ;?>   

Alli al seleccionar la fecha de culminación me didirge a la action Eq la cual tengo este codigo:


 public function actionEq()

        {

         $eqini = $_POST['datos_aud']['equi_ini']; 

         $eqfin = $_POST['datos_aud']['equi_cul'];

         if ($eqini < $eqfin){

               $dhequipo = $this->Evalua($this->DiasHabiles($eqini, $eqfin));   

                echo CJSON::encode($dhequipo);}

         else

            Yii::app()->user->setFlash('success', 'Error de Fechas');


//               Yii::app()->clientScript->registerScript(1, 'alert("Error de Fechas")');

        }

En el controlador tomo dos fechas comparo si una fecha es menor que otra, si es menor me ejecuta ciertas funciones y manda el resultado por CJSON pero si es mayor necesito que me envie un alerta indicando “Fecha inicial es mayor que fecha final”… he intentado como lo ven alli pero no muestra absolutamente nada… que estare haciendo mal?? :(

prueba mirar que la tabla que redireccionaste recorra los success:

<div class="info" style="text-align: left;" >

<?php

foreach(Yii::app()->user->getFlashes() as $key => $message) {

echo ‘<div id=“infoflash” class="alert in alert-block alert-’ . $key . ‘">’. $message ."<a class=‘close’ data-dismiss=‘alert’>×</a></div>\n";

}

?>

</div>

HOla … Grcias por responder… pero NO no me funciona… No muestra absolutamente nada… :(

Bueno Logre resolver de la siguiente manera… Hice la comparación en el controlador y si es mayor la fecha inicial coloco la variable en 0 y comparo en la vista si es 0 mando el alerta sino realiza las operaciones… En la vista


          <?php

                        echo 'Fecha de Culminación: <span class="required">*</span> ';

                        if ($model['equi_cul'] != '') {

                            $model['equi_cul'] = date('d-m-Y', strtotime($model['equi_cul']));

                        }

                        $this->widget('zii.widgets.jui.CJuiDatePicker', array(

                            'model' => $model,

                            'attribute' => 'equi_cul',

                            'name' => 'equi_cul',

                            'value' => $model['equi_cul'],

                            'language' => 'es',

                            'htmlOptions' => array('readonly' => "readonly"),

                            'options' => array(

                                'defaultDate' => $model->equi_cul,

                                'dateFormat' => 'dd-mm-yy',

                                'onSelect'=> 'js: function() {'. 

                                     CHtml::ajax(array(

                                             'type'=>'POST',

                                             'datatype'=>'json',

                                             'url'=> CController::createUrl('datos_aud/Eq'), 

                                             'success'=> 'function(data){

                                                 if (data == 0){

                                                    alert("Fecha Inicial es Mayor que Fecha Final");}

                                                 else      

                                                     $("#datos_aud_d_equ").val(data);

                                                     $("#datos_aud_d_hab").val(data); 

                                                  }',)               

                                        ).'}',

                                      )

                                     ))

                            ;?> 

En el controlador


   public function actionEq()

        {

         $eqini = $_POST['datos_aud']['equi_ini']; 

         $eqfin = $_POST['datos_aud']['equi_cul'];

         if ($eqini < $eqfin){

               $dhequipo = $this->Evalua($this->DiasHabiles($eqini, $eqfin));   

                echo CJSON::encode($dhequipo);     

         }

         else{

             $dh = 0;

         echo CJSON::encode($dh);}

        }

No se si es lo más optimo, pero por ahora es lo que me resulta… si hay otra opcion seria de gran ayuda… :)

Buenas no se si esto te funcione, las validaciones siempre tienen que ser trabajo del modelo para comparar fechas puedes hacerlas de la siguiente manera agregando en el array Rules de tu modelo:




      array('fecha_culminacion', 'compare', 'compareAttribute'=>'fecha_creacion','operator'=>'>'),

    

Saludos.

+1