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 '); ?>
ent Yii :: app() - > user-> login(新しいUserIdentity($ user)); $ this-> activationKey($ user); – user677900
iFrameモーダルまたは通常の「インライン」モーダルを使用していますか? – thaddeusmt