2017-11-29 6 views
0

私はログインページにブートストラップモーダルを使用しています。私がポップアップでフォームを送信すると、閉じられ、応答が表示されます。しかし、ポップアップを閉じる代わりに、同じポップアップウィンドウで応答を表示したいと考えています。応答データを表示するためにポップアップを閉じることなく誰でも私を助けることができますか?Yii2ブートストラップモーダルポップアップを閉じずにpjaxを使用してフォームを送信する方法

サンプル・ビューのページ:

<?php Pjax::begin(); ?> 
<?= Html::beginForm(['site/login'], 'post'); ?> 
<?= Html::input('text', 'email', ['class' => 'form-control']) ?> 
<?= Html::input('text', 'password', ['class' => 'form-control']) ?> 
<?= Html::submitButton('Login', ['class' => 'btn btn-lg btn-primary', 'name' => 'login']) ?> 
<?= Html::endForm() ?> 

コントローラー

コントローラーで
if ($model->load(\Yii::$app->request->post())) { 

    $authenticateUser = $model->login(); 
    if($authenticateUser == "Locked"){ 
     Yii::$app->session->setFlash('invalid', 'Your account has been locked. Please contact customer service for assistance'); 
       return $this->redirect('index'); 
    }else{ 
     Yii::$app->session->setFlash('success', 'Successfully logged in'); 
       return $this->redirect('index'); 
    } 
} 

、でをリダイレクトする代わりにのは、私はまた、renderAjaxで試してみました。しかし、期待どおりに動作していません。

答えて

0

独自のjavascriptハンドラbeforeSubmitを追加して、ajax経由でフォームの送信を強制する必要があります。 this linkを参照してください。

0
use yii\widgets\Pjax; 
use yii\bootstrap\ActiveForm; 

<?php Pjax::begin(); ?> 
    <?php 
     $form = ActiveForm::begin([ 
     'id' => 'form-id',     
     'options' => ['class' => 'form-horizontal','data-pjax' => true], 
     ]); 
    ?> 
     // Your fields 
    <?php ActiveForm::end(); ?> 
<?php Pjax::end(); ?> 
の下に試してみてください
関連する問題