@Leffken
Студент, как студент!

Yii2 форма без обновления через Pjax?

Всем привет.
Возможно ли в yii2 сделать форму, в которой элементы будут изменяться динамически путем pjax, но чтобы остальные поля формы не обновлялись ? И если нельзя то как это необходимо делать? JS ?
Например вот такой код
<? Pjax::begin(['enablePushState' => false]); ?>
    <?php $form = ActiveForm::begin(['options' => ['data-pjax' => '1']]); ?>    

    <?= $form->field($modelCouples[0], "[0]id_driver")->dropDownList($driver)?>
    
    <?         
        if (count($modelCouples) == 2) echo $form->field($modelCouples[1], "[1]id_driver")
                                        ->dropDownList($driver);
    ?>

    <? 
            if (count($modelCouples) == 1) echo Html::a('+', ['/trip/create?action=new'],['class' => 'btn btn-primary']);
            else echo Html::a('-', ['/trip/create?action=one'],['class' => 'btn btn-primary']);
    ?>    

    <?= $form->field($model, 'id_tc')->dropDownList($car) ?>

    <?  
        $param = ['prompt' => 'Выберите прицеп'];
        echo $form->field($model, 'id_trailer')->dropDownList($trailer,$param);      
    ?>

    <?= $form->field($model, 'Distance')->textInput() ?>

    <div class="form-group">
        <?= Html::submitButton($model->isNewRecord ? 'Создать' : 'Изменить', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?>
    </div>

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

Здесь после нажатии на кнопку обновиться вся форма, как сделать так чтобы введенные данные не были обновлены ?
  • Вопрос задан
  • 1390 просмотров
Пригласить эксперта
Ответы на вопрос 1
qonand
@qonand
Software Engineer
лучше не путать динамическое изменений формы с ее отправкой на сервер - ведь каждой обращение к серверу - это нагрузки на него. Для динамического изменения лучше использовать JS.

Если всетаки решите использовать для этих целей Pjax просто загрузите данные с поста в модель
if (Yii::$app->request->isPost){
$model->load(Yii::$app->request->post())
}
Ответ написан
Ваш ответ на вопрос

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

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