@KidsBout

Как сделать обновление значения в базе?

В базе данных есть таблица с полями id и Name.
На странице добавляю новый значения в базу через форму, которая отправляет значения в модель, а дальше в базу.
Вот форма:
<?php $form = ActiveForm::begin(); ?>

    <?= $form->field($addform, 'nameEx')->textInput()->label('Exercise name')?>

    <div class="form-group">
        <?= Html::submitButton('Отправить', ['class' => 'btn btn-primary']) ?>
    </div>

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


Добавление работает.
А как организовать обновление значения в базе?
Например я добавил значение, но хочу заменить Name, как это сделать? Без использования генератора Yii

Начал делать так:

<?php $form = ActiveForm::begin(); ?>

    <?php foreach ($allNameEx as $item){ ?>

        <?= $form->field($addform, 'nameEx')->textInput(array('value'=>$item['name']))->label('');?>

        <a href="<?php echo Url::toRoute(['site/ex-delete', 'id' => $item['id']]) ?>" >Удалить</a>

    <?php } ?>

    <div class="form-group">
        <?= Html::submitButton('Отправить', ['class' => 'btn btn-primary']) ?>
    </div>
    <?php ActiveForm::end(); ?>


Добавляю форму с input в котором уже есть записанное значение Name, но что делать дальше? Ведь форма одна и принимает значение nameEx одно, соответственно при изменении изменятся все на одно значение.
  • Вопрос задан
  • 142 просмотра
Решения вопроса 2
@VitGun
Выводите рядом в скрытом поле Id записи, и делайте имя input уникальным. В контроллере же проверяйте записи на изменение и если name в модели не совпадает с name в базе, то обновляем запись.
Ответ написан
@devian3000
Эм, более простое решение, AJAX.
Добавьте по-мимо скрытого INPUT name="ID", кнопку обновить, и триггер на отправку через Ajax на нажатие.
Это избавит от прохода с проверками на изменение значения поля, уберёт одну лишнюю отрисовку, после смену названия.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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