2012-01-15 7 views
0

私はモーダルウィンドウで登録フォームを作成したいと思います。すべて正常に動作しますが、 JSONレスポンスは処理されません、firebug>[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

ent Yii :: app() - > user-> login(新しいUserIdentity($ user)); $ this-> activationKey($ user); – user677900

+0

iFrameモーダルまたは通常の「インライン」モーダルを使用していますか? – thaddeusmt

答えて

0

の代わりに -

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

試み - uはCOMM場合に発生するもの

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

     if(data.status == 'success') 
     { 
     $('#mydialog').load('/whowithme/signup/finalstep'); 
     } 
    }" 
関連する問題