Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
valerii
Сообщения: 11 Зарегистрирован: 2017.10.07, 19:55
Сообщение
valerii » 2018.02.06, 20:33
Сделал сайт с pjax-навигацией и столкнулся с проблемой проскролленных вверх страниц. Добавил опцию
Все стало на свои места за одним исключением: в одном из представлений есть форма, и при сабмите эта страница прыгает вверх. Можно ли это как-нибудь пофиксить не используя обычный рендеринг для этого представления?
valerii
Сообщения: 11 Зарегистрирован: 2017.10.07, 19:55
Сообщение
valerii » 2018.02.06, 22:39
urichalex писал(а): ↑ 2018.02.06, 21:40
На форму добавить атрибут data-pjax="1"
Добавил, к сожалению, ничего не изменилось.
urichalex
Сообщения: 994 Зарегистрирован: 2015.08.07, 11:03
Сообщение
urichalex » 2018.02.06, 22:58
При отправке формы страница обновляется или просто скролл происходит?
Покажи код
valerii
Сообщения: 11 Зарегистрирован: 2017.10.07, 19:55
Сообщение
valerii » 2018.02.06, 23:07
Страница не обновляется. Форма работает.
Шаблон:
Код: Выделить всё
<?php Pjax::begin(['scrollTo' => 0]) ?>
<a class="menuBtn" href="#"><?= t('Меню') ?></a>
<nav class="navigation" role="navigation">
<ul class="navigation__inner">
<li class="navigation__item">
<a class="navigation__link" href="<?= Url::to(['site/index']) ?>"><?= t('Главная') ?></a>
</li>
<li class="navigation__item">
<a class="navigation__link" href="<?= Url::to(['brand/index']) ?>"><?= t('Бренды') ?></a>
</li>
<li class="navigation__item">
<a class="navigation__link" href="<?= Url::to(['site/contact']) ?>"><?= t('Контакты') ?></a>
</li>
</ul>
</nav>
<main class="main" role="main">
<?= $content ?>
</main>
<?php Pjax::end() ?>
Представление:
Код: Выделить всё
<section class="subscription">
<div class="container">
<div class="subscription__inner">
<?php if(!Yii::$app->session->getFlash('success')): ?>
<p class="subscription__direction">
<?= t('Желаете получить извещение на свой E-mail?') ?>
</p>
<div class="subscription__form">
<?php $form = ActiveForm::begin(['id' => 'subscription-form', 'options' => ['data-pjax' => 1, 'class' => 'subscription__form-inner']]); ?>
<?= $form->field($model, 'email', [
'errorOptions' => ['class' => 'subscription__form-help'],
'options' => ['class' => 'subscription__form-group'],
'inputOptions' => ['placeholder' => $model->getAttributeLabel('email'), 'class' => 'subscription__form-control']
])->label(false); ?>
<div class="subscription__form-group">
<?= Html::submitButton(t('Отправить'), ['class' => 'subscription__form-btn', 'name' => 'subscription-button']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>
<?php else: ?>
<div class="subscription__confirmation">
<?= Yii::$app->session->getFlash('success'); ?>
</div>
<?php endif; ?>
</div>
</div>
</section>