VerbAlexVlad
@VerbAlexVlad
Программист-любитель

Как запретить pjax yii2 менять url?

Борюсь уже какой день.

есть вид с pjax
<?php 
Pjax::begin([
    'id' => 'form_pjax',
    'clientOptions' => ['method' => 'POST'],
    'enablePushState' => false
]);
    $form = ActiveForm::begin([
    'id' => 'edit-form',
    'options' => [
        'method' => 'post',
        'data-pjax' => true
    ]]);
    /* ................................. */
    ActiveForm::end();
Pjax::end(); 
?>

и есть js запрос
var form = $('form#edit-form');

var formData = form.serialize();
$.pjax.reload({
    container:'#form_pjax', 
    url:form.attr('action'), 
    method:'post', 
    data:formData, 
    push: false, 
    timeout: 2000
});

И там и там указал push:false, но все равно при выполнении запроса меняется адресная строка.... Почему так происходит?
  • Вопрос задан
  • 180 просмотров
Пригласить эксперта
Ответы на вопрос 1
@sepetov
Программист Navision, программист PHP
Ну что? Спустя полгода ответ наверняка уже потерял актуальность, но я отвечу :-) Кому-то другому пригодится.

Как я понял, $.pjax.reload() не любит, когда одновременно указаны url и push, второй параметр он игнорирует. Но можно не вызывать .reload() напрямую, а имитировать его поведение вот так:
$.pjax({ // <<<=== нет вызова .reload()
        url : 'тут ваш url',
        container : '#ваш_id,
        push : false,
});

Остальные параметры - по вкусу. У меня работает и url не меняется.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы