@NeroKore
Начинающий

Как в цикле редактировать БД?

Доброго времени суток, сложилась такая проблема. Соединение с БД происходит с помощью RedBeanPHP
Есть у меня БД под именем bugs , в ней есть поля : id, login, date, text, done и так далее.
По умолчанию done стоит false
Вывод происходит с помощью цикла foreach
Вывод показан на картинке :
5aa3f6e42f178374837995.png
В чем собственно проблема, хочу , что бы при нажатии на кнопку "Проблема решена"(name = bug_done), в БД именно для этой формы done менялась на true.
Как поменять я знаю, но когда я делаю , что при нажатии на кнопку "Проблема решена", в БД done меняется на true, то он меняется только у последнего ID, который был выведен. К примеру :
5aa3f99e77d9f800007760.png
Вот данном изображении. У нас есть 3 формы , в которых выводится информация. Если я нажму в любой из форм на кнопку "Проблема решена", то она меняется только у ID:3 , так как в БД он последний.
Вот код на исполнение замены :
$bugs = R::findAll('bugs');
	$data = $_POST;
if (isset($data['bug_done'])) {
	$bugs->done = 'true';
	R::store($bugs);
}
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
ThunderCat
@ThunderCat
{PHP, MySql, HTML, JS, CSS} developer
вариант 1:
Каждый из блоков заключить в тег <form></form>, внутри создать соответствующие скрытые поля. При субмите будете получать весь набор данных, согласно которым уже можно что-то в базу писать. У вас же судя по всему одна форма на весь список. По этому в обработчик попадают все данные, но та как поля дублируются по имени - учитываются последние полученные данные, то есть самые нижние поля. Что и происходит у вас, последний набор меняет состояние.
Вариант 2: принцип как у варианта 1, только через яваскрипт отлавливать нажатую кнопку и от этого уже делать субмит нужных полей, например используя аякс. Вариант более сложный для новичка, и в целом не слишком популярный.
Вариант 3: смесь 1 и 2 - при субмите формы отлавливать событие яваскриптом и отправлять данные аяксом на сервер в виде сериализованных данных. По результату ответа от сервера менять состояние кнопки яваскриптом на "готово", или как там у вас, и кнопку дизэйблить.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы
Badoo Development Москва
от 140 000 до 180 000 руб.
Badoo Development Москва
от 180 000 до 250 000 руб.
от 90 000 до 150 000 руб.
18 авг. 2018, в 01:10
17000 руб./за проект
17 авг. 2018, в 23:00
5500 руб./за проект