我正在使用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而不是重定向。但它没有按预期工作。
您需要通过添加自己的javascript处理程序beforeSubmit
来强制执行表单提交。见this link。
尝试以下一个
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(); ?>