我正在使用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 ,而不是重定向。但它没有按预期工作。
答案 0 :(得分:0)
您需要通过添加自己的javascript处理程序beforeSubmit
来强制通过ajax提交表单。见this link。
答案 1 :(得分: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(); ?>