2012-01-15 16 views
0

我想在模態窗口中創建註冊表單。一切正常,但。 未處理JSON響應,螢火蟲>[08:26:54.678]未捕獲的異常:語法錯誤,無法識別的表達式:{「status」:「success」} 無模式窗口一切正常。響應正在進行和處理。 歡迎任何幫助和建議。Yii:CJuiDIalog和CJSON響應

控制器:

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 '); ?> 
+0

如果u COMM發生什麼事ent Yii :: app() - > user-> login(new UserIdentity($ user));和$ this-> activationKey($ user);? – user677900 2012-01-15 16:29:28

+0

您是使用iFrame模式,還是使用常規的「inline」模式? – thaddeusmt 2012-01-15 23:24:02

回答

0

代替 -

'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'); 
     } 
    }"