Динамическое добавление input в ActiveForm Yii2

116
07 февраля 2021, 19:20

Подскажите пожалуйста как реализовать динамическое добавление полей в форму ActiveForm. Сейчас у меня есть следующая форма:

Сейчас реализован только функционал вывода якорей статей из базы данных. Предполагается , что при нажатии кнопки "Добавить якорь" - в форму добавиться новая группа input - 2шт.и их можно будет успешно сохранить в базу данных. Контроллер :

    /**
 * Updates an existing Article model.
 * If update is successful, the browser will be redirected to the 'view' page.
 * @param integer $id
 * @return mixed
 * @throws NotFoundHttpException if the model cannot be found
 */
public function actionUpdate($id)
{
    $model = $this->findModel($id);
    $modelArticleAnchors = $this->findArticleAnchorsModel($model->id);
    $error = false;
    $errors=[];
    if ($model->load(Yii::$app->request->post() )) {
        $meta=new MetaComponent(new RelateTableFactory());
        $meta->build($id,Yii::$app->request->post(),$model->formName(),'meta_items');
    }
    Model::loadMultiple($modelArticleAnchors,Yii::$app->request->post());
    foreach($modelArticleAnchors as $articleAnchors){
            $articleAnchors->save();            
    }
    if ($model->load(Yii::$app->request->post()) && $model->save()) {
        return $this->redirect(['update', 'id' => $model->id]);
    }
    if($model->hasErrors()){
        $error = true;
        $errors = $model->getErrors();
    }
    return $this->render('update', [
        'model' => $model,
        'modelArticleAnchors' => $modelArticleAnchors,
        'error'=>$error,
        'errors'=>$errors
    ]);
}

View:

        <div id="anchor_container">
        <?php foreach($modelArticleAnchors as $index => $articleAnchor): ?>
        <div class="col-lg-12 anchor-container_inner">
            <div class="col-lg-6">
                <?= $form->field($articleAnchor, "[$index]anchor_text")->textInput(); ?>
            </div>
            <div class="col-lg-6">
                <?= $form->field($articleAnchor, "[$index]anchor_id")->textInput(); ?>        
            </div>    
        </div>
        <?php endforeach; ?>
   </div>
    <button type="button" id="insertRowButton" class="btn btn-primary">Добавить якорь</button>
READ ALSO
Сгенерировать комбинации

Сгенерировать комбинации

Для выбора на сайте есть три чекбокса, в котором есть три вариантаПользователь может выбрать 1 или 2 или 3 варианта

102
Изменение данных mysql через php

Изменение данных mysql через php

Бойцы, вообщем пытаюсь изменить бд, через условную админ панель, сделал кнопки и тдКнопка удаления к слову пашет прекрасно, а вот редактирование...

135
Как в woocommerce перевести billing поля на разные языки?

Как в woocommerce перевести billing поля на разные языки?

Есть магазин на woocommerce с установленным плагином мультиязычности polylang

124
Поиск в mongodb по нескольким ключам

Поиск в mongodb по нескольким ключам

Подскажите, как на PHP выполнить запрос к MongoDB на поиск строки по нескольким ключам?

106