villiwalla
@villiwalla
HTML-верстка

Почему изменяется url при отправке формы Yii2 если Pjax 'enablePushState' => false?

Есть у меня виджет для использования его в layout, т.к форма сквозная и также есть пара форм в обычной вьюхе.
Так вот, в обычной вьюхе формы отправляют ajax-запрос и не меняют текущий url, а вот форма с виджета отправляет ajax-запрос но меняет урл.

Формы во вьюхе:
<?
                    Modal::begin([
                        'header' => '<h3>Запись на консультацию</h3>',
                        'toggleButton' => [
                            'label' => 'Записать на консультацию',
                            'tag' => 'button',
                            'class' => 'btn btn__white',
                        ],
                    ]);

                    Pjax::begin(['enablePushState' => false]);
                        echo Html::beginForm(Url::toRoute('forms/writetoconsult'),'POST', ['data-pjax' => '']);

                            echo '<div class="form-group">';
                                echo Html::textInput('name', '', ['class' => 'form-control', 'placeholder' => 'Ваше имя']);
                            echo '</div>';

                            echo '<div class="form-group">';
                                echo Html::textInput('phone', '', ['class' => 'form-control', 'placeholder' => 'Ваш телефон']);
                            echo '</div>';

                            echo '<div class="form-group">';
                                echo Html::submitButton('Записаться', ['class' => 'btn block-center btn__border']);
                            echo '</div>';

                        echo Html::endForm();
                    Pjax::end();

                    Modal::end();


                    Modal::begin([
                        'header' => '<h3>Задать вопрос</h3>',
                        'toggleButton' => [
                            'label' => 'Задать вопрос',
                            'tag' => 'button',
                            'class' => 'btn btn__border-white pull-right'
                        ],
                    ]);

                    Pjax::begin(['enablePushState' => false]);
                       echo Html::beginForm(Url::toRoute('forms/questionspecialist'),'POST', ['data-pjax' => '']);

                            echo '<div class="form-group">';
                                echo Html::textInput('name', '', ['class' => 'form-control', 'placeholder' => 'Ваше имя']);
                            echo '</div>';

                            echo '<div class="form-group">';
                                echo Html::textInput('email', '', ['class' => 'form-control', 'placeholder' => 'Ваш email']);
                            echo '</div>';

                            echo '<div class="form-group">';
                                echo Html::textarea('email', '', ['class' => 'form-control', 'placeholder' => 'Ваш вопрос?', 'rows' => 5]);
                            echo '</div>';

                            echo '<div class="form-group">';
                                echo Html::submitButton('Записаться', ['class' => 'btn block-center btn__border']);
                            echo '</div>';

                       echo  Html::endForm();
                    Pjax::end();

                    Modal::end();
                ?>


Форма в виджете:
<?
                Pjax::begin(['enablePushState' => false]);
                    echo Html::beginForm(Url::toRoute('forms/appointments'), 'POST', [
                        'data-pjax' => '',
                        'id' => 'appoint',
                        'class' => 'appointments__form form-horizontal',
                    ]);
            ?>

                <div class="col-md-6">
                    <div class="col-md-11 col-md-offset-1">
                        <div class="form-group">
                            <?= Html::textInput('name', '', ['class' => 'form-control', 'placeholder' => 'Ваше имя']) ?>
                        </div>
                        <div class="form-group">
                            <?= Html::textInput('phone', '', ['class' => 'form-control', 'placeholder' => 'Ваш номер телефона']) ?>
                        </div>
                    </div>
                </div>

                <div class="col-md-6">
                    <div class="col-md-11 col-md-offset-1">
                        <div class="form-group">
                            <div class="form__select">
                                <?= Html::dropDownList('specialist', '', ArrayHelper::map($items, 'id','name'),
                                    ['prompt' => 'Выбериате специалиста','class' => 'form-control']); ?>
                            </div>
                        </div>
                    </div>
                    <?= Html::submitButton('Записаться', ['class' => 'btn btn-large btn__bg pull-right']) ?>
                </div>
                <div class="clearfix"></div>

                <?
                    Html::endForm();
                    Pjax::end();
                ?>
  • Вопрос задан
  • 1015 просмотров
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
смотрите чем запросы отличаются.
пробуйте для pjax виджетов id вручную ставить.
проверьте, таймаут, так как после его истечения идет обычный запрос.
Проверьте вообще тот ли код отправляет данные, что Вы ожидаете
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы