entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

4votos

Formulario de registro en ventana modal con Yii Framework

Buenas estoy realizando un formulario en una ventana modal con Yii Framework.

Estoy teniendo problemas ya que estoy usando dicho formulario en una ventana modal y cuando intento llamar al login me sale un error diciendo: Undefined variable: $modal, y no se carga ni si quiera la página.

Aquí os dejo la ventana modal con el código:

<div class="modal fade in" id="abrirAcceder" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" style="top: 100px;">
                      <div class="modal-dialog">
                        <div class="modal-content">
                          <div class="modal-header">
                            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button><br><br>
                            <h5 class="modal-title" id="myModalLabel">
                                <i class="fa fa-user fa-lg"></i>
                                ACCEDE A TU CUENTA
                                <span class="subheader right small-link">
                                    <a href="#" data-dismiss="modal" aria-hidden="true" data-toggle="modal" data-target="#register_panel" data-reveal-id="register_panel" id="nueva-cuenta" class="radius secondary small button">CREAR NUEVA CUENTA</a>
                                </span>
                            </h5>
                          </div>
                          <div class="modal-body">
                            <div class="form">
                                <?php $form=$this->beginWidget('CActiveForm', array(
                                    'id'=>'login-form',
                                    'enableClientValidation'=>true,
                                    'clientOptions'=>array(
                                        'validateOnSubmit'=>true,
                                    ),
                                )); ?>
                                <div class="col-md-6">
                                <?php echo $form->textField($model,'username'); ?>
                                    <?php echo $form->error($model,'username'); ?>

                                </div>
                                <div class="col-md-6">
                                    <?php echo $form->passwordField($model,'password'); ?>
                                    <?php echo $form->error($model,'password'); ?>

                                </div>
                                <p class="col-md-12">
                                    <small>
                                        <i class="fa fa-lock"></i>
                                        Tu <a target="_blank" href="<?php echo Yii::app()->createUrl('/site/politica') ?>">privacidad</a>  es importante para nosotros. Nunca venderemos tu información.
                                    </small>
                                </p>
                                <div class="col-md-12">
                                    <?php echo CHtml::submitButton('Login'); ?>

                                    <a href="#" class="facebook_connect radius button facebook"><i class="fa fa-facebook-square"></i>  Haz login con facebook</a>
                                </div>
                                <?php //$this->endWidget(); ?>
                            </div><! -- div -->
                            <div class="col-md-12">
                                <hr>
                                <ul class="inline-list">
                                    <li>
                                        <small>
                                            <a href="#" data-dismiss="modal" aria-hidden="true" data-toggle="modal" data-target="#forgot_panel" data-reveal-id="forgot_panel">¿OLVIDASTE TU CONTRASEÑA?</a>
                                        </small>
                                    </li>
                                </ul>
                            </div>
                          </div> 

                        </div> 
                      </div> 
                    </div> 

Esta ventana modal se encuentra en el main del tema y dentro de ella se cargan las diferentes páginas como el index, etc, etc.

He estado viendo que ese problema se arregla con ajax pero no tengo mucha idea, si alguien sabe como hacerlo lo agradecería.

Dejo también el código del SiteController:

public function actionLogin()
{
    $model=new LoginForm;

    // if it is ajax validation request
    if(isset($_POST['ajax']) && $_POST['ajax']==='login-form')
    {
        echo CActiveForm::validate($model);
        Yii::app()->end();
    }

    // collect user input data
    if(isset($_POST['LoginForm']))
    {
        $model->attributes=$_POST['LoginForm'];
        // validate user input and redirect to the previous page if valid
        if($model->validate() && $model->login())
            $this->redirect("index.php");
    }
    // display the login form
    $this->render('login',array('model'=>$model));
}

El modelo del LoginForm es el básico que te crea Yii por defecto.

Y el UserIdentity igual, creo que el problema estará en esos 2 trozos de código.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta