Yii: CJuiDIalog и CJSON ответ - PullRequest
       5

Yii: CJuiDIalog и CJSON ответ

0 голосов
/ 15 января 2012

Я хочу создать регистрационную форму в модальном окне.Все отлично работает, но.Ответ JSON не обработан, firebug> [08: 26: 54.678] необработанное исключение: синтаксическая ошибка, нераспознанное выражение: {"status": "success"} Без модального окна все работает нормально.Ответ приходит и обрабатывается.Любая помощь и предложения приветствуются.

Контроллер:

public function actionSignup()

    {
    if(Yii::app()->request->isAjaxRequest) {
       $user = new Signup(Signup::SCENARIO_SIGNUP);


   if(Yii::app()->user->isGuest)
   {
       if(isset($_POST['ajax']) && $_POST['ajax']==='register-form')
{
    echo CActiveForm::validate($user);
    Yii::app()->end();
}
        if(isset($_POST['Signup']))
            $user->attributes = $_POST['Signup'];

                if($user->save())                       
                {
                    Yii::app()->user->login(new UserIdentity($user));

                echo CJSON::encode(array(
                    'status'=>'success', 

                    )); 

                $this->activationKey($user);

                exit;      


        }
     $this->renderPartial('_finalFormAjax', array('model'=>$user),false,true);

   }

Просмотр

  <?php $this->beginWidget('zii.widgets.jui.CJuiDialog', array(
    'id'=>'mydialog',
    'options'=>array(
        'title'=>'Регистрация',
        'autoOpen'=>true,
         'modal'=>true,
        'width'=>550,
        'height'=>470,
        'draggable'=>false,
        'resizable'=>false,
    ), ?>
   ));


?>
<?php $form = $this->beginWidget('CActiveForm', array(
    'id'=>'register-form',
    'enableAjaxValidation'=>true,
    'clientOptions'=> array('validateOnSubmit'=>true),

)); ?>



    <?php  echo CHtml::ajaxSubmitButton('Зарегистрироваться','', 
                array(
                    'type' => 'POST',
                    'dataType'=>'json',
                    'beforeSend' => 'function() {
                            $("#register-form").addClass("loading");
                    }',
                    'complete' => 'function(){
                            $("#register-form").removeClass("loading");
                    }',
                    'success'=>"function(data)     
                    {
                        if(data.status == 'success')
                    {    
                            $('#mydialog').load('/whowithme/signup/finalstep'); 
                    }}",

                    )
            ); ?>

    <?php $this->endWidget(); ?>



    <?php $this->endWidget('zii.widgets.jui.CJuiDialog '); ?>

1 Ответ

0 голосов
/ 22 марта 2012

вместо -

   'success'=>"function(data)     
   {
      if(data.status == 'success')
      {
         $('#mydialog').load('/whowithme/signup/finalstep'); 
      }
   }"

попробуй -

'success'=> "function(response)     
   {
      var data = $.parseJSON(response);

      if(data.status == 'success')
      {
         $('#mydialog').load('/whowithme/signup/finalstep'); 
      }
   }"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...