Задать вопрос
@frmax
человек

Yii2 ajax регистрация и авторизация что это такое?

Добрый день,

Сделал регу и авторизацию на сервере, а тут решили сделать выплывающее окно на логин и на регу.
Как создать форму в этих выплывающих вьюхах и правильно отправить данные. Чтоб и валидация так же работала и сервер отрабатывал)

А то костылей налепил - а теперь с ними плачу.
  • Вопрос задан
  • 5344 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
abler98
@abler98
Software Engineer
Выводите форму как и всегда в всплывающем окне + в Yii2 по умолчанию есть поддержка проверки на стороне клиент и ajax проверка введенных данных.

/views/layouts/main.php
<?php $model = new SignupForm(); ?>
<?php $this->render('/site/user/signup', ['model' => $model]); ?>
Ответ написан
@frmax Автор вопроса
человек
в layoute

<?php $model = new SignupForm(); ?>
    <?php $this->render('@app/views/site/user/singup.php', ['model' => $model]); ?>


в Signup
<?php
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
/* @var $this yii\web\View */
/* @var $form yii\bootstrap\ActiveForm */
/* @var $model \frontend\models\SignupForm */
$this->title = 'Signup';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class=reg-block id=reg-block> 
        
        <?php $form = ActiveForm::begin([
        'enableClientValidation' => true,
        'enableAjaxValidation' => true,
        'id' => 'form-signup']); ?>
        <div class=r-f-b> 
            <div class=r-f-pp>
                <label for=name><span>Ваше имя</span>
            <?= $form->field($model, 'username') ?>    
                </label> 
            </div>
            <div class=r-f-pp>
                <label for=last-name> <span>Фамилия</span>
            <?php //= $form->field($model, 'lastname') ?>        
                </label>  
            </div>
            </div>
        <div class=r-f-b>
            <div class=r-f-pp-l>
                <label for=mail> <span>Электронная почта</span> 
                <?= $form->field($model, 'email') ?>
                    <p class=p-att>Нужна чтобы вы смогли войти на сайт. Отправлять ничего не будем.</p>
                </label>
            </div>
        </div>
            <div class=r-f-b> 
                <div class=r-f-pp> 
                    <label for=pwd> <span>Пароль</span> 
            <?= $form->field($model, 'password')->passwordInput() ?>
                    </label> 
                </div>      
            </div>
        <div class=r-f-pp-h>
            <?php //= Html::submitButton('Signup', ['class' => 'card-button blue', 'name' => 'signup-button']) ?>
            <?= Html::submitButton('Signup', ['class' => 'card-button blue', 'name' => 'Готово!']) ?>
        </div> 
        <?php ActiveForm::end(); ?>
        
        
<!--            <form class=reg-from-popup action="javascript:void(null);"> 
            <div class=r-f-b> 
                <div class=r-f-pp> 
                    <label for=name><span>Ваше имя</span><input id=name type=text name=name></label> 
                </div>
                <div class=r-f-pp> 
                    <label for=last-name> <span>Фамилия</span> <input id=last-name type=text name=lastname></label> 
                </div> 
            </div> 
            <div class=r-f-b>
                <div class=r-f-pp-l> 
                    <label for=mail> <span>Электронная почта</span> <input id=mail type=email name=login></label> 
                    <p class=p-att>Нужна чтобы вы смогли войти на сайт. Отправлять ничего не будем.</p> 
                </div> 
            </div> 
            <div class=r-f-b> 
                <div class=r-f-pp> 
                    <label for=pwd> <span>Пароль</span> <input id=pwd class=error type=password name=password></label> 
                </div>
                    <div class=r-f-pp-h> <button class="card-button blue" onclick="singup();">Готово!</button> </div> 
            </div> 
        </form>-->
    </div>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽