ich modale Fenster in meiner Hauptansicht habeAjax Validierungsdaten in modalen Fenstern yii2
<?php
Modal::begin([
'header' => 'Log in or register or restore password',
'id' => 'modal',
'size' => 'modal-lg',
]);
echo "<div id='modalContent'></div>";
Modal::end();
?>
Und ich habe weitere Ansicht es in meinem modalen Fenster in Hauptansicht zu machen
<div class="row">
<div class="col-lg-5">
<?php $form = ActiveForm::begin(['id' => 'login-form']); ?>
<?= $form->field($login_model, 'username')->textInput() ?>
<?= $form->field($login_model, 'password')->passwordInput() ?>
<div class="form-group">
<?= Html::submitButton('Login', ['class' => 'btn btn-primary', 'name' => 'login-button', 'data-pjax' => 1]) ?>
</div>
<?php ActiveForm::end(); ?>
</div>
</div>
diese
Verwendung\frontend\assets\OverviewAsset::register($this);
ich registriert mein js Code
$(document).ready(function() {
$(function() {
var id_user_tag = 'id_user';
$(document).on('click','[' + id_user_tag + ']', function() {
var id_user = this.getAttribute(id_user_tag);
$.ajax({
url: '/client/is-full-page-accessed',
type: 'post',
data: {
id_user: id_user
},
success: function (response) {
if(response) {
window.location = 'full-page?id_user=' + id_user;
} else {
$.get(
'/client/log-in',
function (data) {
$('#modal').modal('show')
.find('#modalContent')
.html(data);
}
);
}
}
});
});
});});
Und ich habe Controller
public function actionLogIn()
{
if (!\Yii::$app->user->isGuest) {
return $this->goHome();
}
$password_reset_request_model = new PasswordResetRequestForm();
if ($password_reset_request_model->load(Yii::$app->request->post()) && $password_reset_request_model->validate()) {
if ($password_reset_request_model->sendEmail()) {
Yii::$app->session->setFlash('success', 'Check your email for further instructions.');
return $this->goHome();
} else {
Yii::$app->session->setFlash('error', 'Sorry, we are unable to reset password for email provided.');
}
}
$login_model = new LoginForm();
if ($login_model->load(Yii::$app->request->post()) && $login_model->login()) {
return $this->goBack();
} else {
$model['login'] = $login_model;
return $this->renderAjax('log-in', ['login_model' => $login_model, 'password_reset_request_model' => $password_reset_request_model]);
}
}
So endlich, was ich habe
ich auf einige Schaltfläche klicken und wenn ich nicht angemeldet bin - ich habe meine modale Fenster öffnen und erhalten den zusätzlichen Sehen Sie, dass ich im Controller gerendert habe. Es funktioniert, aber wenn ich falsche Daten im modalen Fenster eingebe - meine Seite geht an diese URL. Aber ich möchte meine ungültigen Daten im modalen Fenster anzeigen.
Wie geht das?
Lassen Sie mich wissen, wenn weitere Informationen benötigt werden.
Danke, ich war auf der Suche nach dieser Lösung. –