pjax делает редирект формы

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
an.viktory@gmail.com
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

pjax делает редирект формы

Сообщение an.viktory@gmail.com »

Код: Выделить всё

<?php Pjax::begin(); ?>
<?= Html::beginForm(['addresses/quick-search'], 'post', ['data-pjax' => 0, 'class' => 'form-inline']); ?>
<?= Html::input('text', 'address', Yii::$app->request->post('address'), ['class' => 'form-control']) ?>
<?= Html::submitButton('поиск адреса', ['class' => 'btn btn-primary', 'name' => 'hash-button']) ?>
<?= Html::endForm() ?>
<?php if ($addresses) {
      foreach ($addresses as $address) {
        echo "<br><button class=\"btn btn-xs btn-success set-id-address \" data-address_id=\"" . $address->id . "\"
                                data-id=\"" . $id . "\">" . $address->address . " 
                        </button>";
    }
} else echo $message;
?>


<?php Pjax::end(); ?>

у меня почему то происходит редирект на addresses/quick-search что а настройках pjax я делаю не так?
Аватара пользователя
Dominus
Сообщения: 892
Зарегистрирован: 2013.03.14, 21:27
Откуда: Россия, Иваново
Контактная информация:

Re: pjax делает редирект формы

Сообщение Dominus »

Пробуйте:

Код: Выделить всё

<?php Pjax::begin([
     'timeout' => 50000, // Увеличиваем время ожидания, по умолчанию 1000
     'enablePushState' => false, // Убираем отображение адреса запроса, по умолчанию true
]); ?>
Не спорь с дураком, иначе окружающие не правильно поймут кто из вас дурак!
an.viktory@gmail.com
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Re: pjax делает редирект формы

Сообщение an.viktory@gmail.com »

все равно ! он у меня в модальном окне может это как то влияет
Аватара пользователя
Dominus
Сообщения: 892
Зарегистрирован: 2013.03.14, 21:27
Откуда: Россия, Иваново
Контактная информация:

Re: pjax делает редирект формы

Сообщение Dominus »

an.viktory@gmail.com писал(а): 2017.09.22, 02:11 все равно ! он у меня в модальном окне может это как то влияет
Попробуйте еще id добавить:

Код: Выделить всё

<?php Pjax::begin([
      'id' => 'pjax-container',
      'timeout' => 50000,
      'enablePushState' => false,
]); ?>
Тут посмотрите, схожая проблема viewtopic.php?t=42959
Не спорь с дураком, иначе окружающие не правильно поймут кто из вас дурак!
an.viktory@gmail.com
Сообщения: 536
Зарегистрирован: 2016.09.05, 23:21

Re: pjax делает редирект формы

Сообщение an.viktory@gmail.com »

тоже нет... там смотрел ... моего решения не нашел
urichalex
Сообщения: 994
Зарегистрирован: 2015.08.07, 11:03

Re: pjax делает редирект формы

Сообщение urichalex »

action формы сделать на то же действие
Если action формы в другом действии, то в действии не должно быть редиректов, рефрешей и пр.
Если action другой, то сначала отправлять форму, потом обновлять пиджак. Так как пиджак обновляет на том же действии
Аватара пользователя
Dominus
Сообщения: 892
Зарегистрирован: 2013.03.14, 21:27
Откуда: Россия, Иваново
Контактная информация:

Re: pjax делает редирект формы

Сообщение Dominus »

Пример:
View:

Код: Выделить всё

<?php
\yii\bootstrap\Modal::begin([
    'header' => '<h2>Форма</h2>',
    'toggleButton' => ['label' => 'Click Me'],
]); ?>

    <?php \yii\widgets\Pjax::begin(['enablePushState' => false]); ?>
    <p>Введите текст и нажмите Отправить.</p>
    <?= $this->render('_form') ?>
    <?php \yii\widgets\Pjax::end(); ?>

<?php \yii\bootstrap\Modal::end(); ?>
Controller:

Код: Выделить всё

/**
     * @return string
     * @throws \yii\web\BadRequestHttpException
     */
    public function actionGetText()
    {
        //if (Yii::$app->request->isAjax) {
            $string = Yii::$app->request->post('string');
            return $this->renderPartial('_form', [
                'string' => $string,
            ]);
        //}
        //throw new \yii\web\BadRequestHttpException(Yii::t('app', 'Bad request!'));
    }
_form

Код: Выделить всё

<?php
use yii\helpers\Html;

/** @var $string string */
?>

<?= Html::beginForm(['site/get-text'], 'post', ['data-pjax' => '', 'class' => 'form-inline']); ?>
<?= Html::input('text', 'string', Yii::$app->request->post('string'), ['class' => 'form-control']) ?>
<?= Html::submitButton('Отправить', ['class' => 'btn btn-lg btn-primary', 'name' => 'hash-button']) ?>

<p><b>Получено:</b> <?= $string ?></p>
Не спорь с дураком, иначе окружающие не правильно поймут кто из вас дурак!
teegraph
Сообщения: 25
Зарегистрирован: 2010.09.19, 21:11

Re: pjax делает редирект формы

Сообщение teegraph »

an.viktory@gmail.com писал(а): 2017.09.22, 00:32

Код: Выделить всё

<?php Pjax::begin(); ?>
<?= Html::beginForm(['addresses/quick-search'], 'post', ['data-pjax' => 0, 'class' => 'form-inline']); ?>
...
<?= Html::endForm() ?>
...
<?php Pjax::end(); ?>
Попробуй убрать 'data-pjax' => 0
Ответить