Yii2如何使用pjax提交表单而不关闭bootstrap模式弹出窗口

问题描述 投票:0回答:2

我正在使用bootstrap模式登录页面。如果我在弹出窗口中提交表单将被关闭并显示响应。但是,不是关闭弹出窗口,而是想在同一个弹出窗口中显示响应。没有关闭弹出窗口以显示响应数据,任何人都可以帮助我。

示例视图页面:

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

在Controller中,我也尝试使用renderAjax而不是重定向。但它没有按预期工作。

php jquery twitter-bootstrap yii2 yii2-advanced-app
2个回答
0
投票

您需要通过添加自己的javascript处理程序beforeSubmit来强制执行表单提交。见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(); ?>
© www.soinside.com 2019 - 2024. All rights reserved.