Задать вопрос
@tajfun_rt

Как правильно обновить БД с помощью формы выведенной в цикле?

Возможно не верно задал вопрос, опишу суть проблемы.
Есть страница на которой с помощью form собираю данные участников. Всего один пользователь может создать три формы , т.е. трех участников команды. На странице первоначально одна форма для заполнения, заполнили нажали сохранить, форма отправляет в БД данные записываются, страница обновляется и эта форма уже заполнена, т.е. автозаполнение value беру с базы данных через $row = $results->fetchAll(\PDO::FETCH_ASSOC);.
Форму данных заключил в функцию data(); и вызываю ее в цикле for ($i = 0; $i <= $number_user; $i++). Для формы и всех ее полей ставлю идентификатор id= "<?php if (isset($i)) {echo $i;} ?>"
Добавление новых форм и запись их в БД проходит нормально.
А вот чтобы обновить например вторую форму, то происходит следующее, при обновлении второй формы (изменении в ней данных) и нажатию кнопки обновить, происходит обновление последней формы . Если первую обновляешь, то во второй обновляются данные как было в первой, а в последней как поменял в первой. В общем происходит что-то странное)))
Сохранение и обновление , весь код на одной странице.
Для сохранения if (isset($_POST['save'])&& и т.д.
Для обновления if (isset($_POST['update'])&&isset($_POST['id'])&& и т.д.

Я думаю нужно сделать ajax вынести update в другой фал, собирать value с конкретной формы.
Но я не могу сделать js, как при нажатии на кнопку взять именное те поля где id= "<?php if (isset($i)) {echo $i;} ?>"
  • Вопрос задан
  • 111 просмотров
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 1
@ksnk
В комментариях советовали посылать одной формой, нужно только копировать шаблон ввода одного персонажа. Примерно так
Основной смысл - шаблоном будут поля ввода первого участника, после копировании шаблона нужно подменить все атрибуты name новых элементов, добавив +1 в индекс имен.
На стороне php просто пробежаться по массивам name, lastname и age и раскидать кого куда надо.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы