Ajax изменение данных и их вывод в таблице

98
04 ноября 2021, 07:30

Всех приветствую!

Хочу сделать вывод данных в таблицу из БД. В результате получить таблицу с возможностью редактирования в каждой строчке хотя бы 1 параметра. Также нужно фильтровать таблицу по чекбоксам тоже без перезагрузки.

Некоторые действия по отдельности я могу произвести. Однако еще не обладаю достаточными знаниями чтобы все это совместить.

Данные которые мне нужно вывести хранятся в ячейках БД в виде массива:

{"a":"1","b":"2","c":"3","d":"4"}

Данные получаю из БД при помощи json_decode в самой php странице и дальше обращаясь к каждому элементу формирую таблицу.

Дальше вопросы. Для лучшего понимания я разделю их на этапы. Если знаете варианты решения какого-то из этих пунктов - прошу подсказать.

  1. Как мне отследить какую конкретно строку таблицы изменили чтобы передать измененные значения? (Думаю присваивать каждому tr свой id и потом его отслеживать как-то)
  2. Как мне сформировать запрос к БД после полученных изменений, чтобы из всего массива что записан в ячейку изменились только те данные что были переданы через ajax? (Я вижу это так: в php проверяю какое поле было изменено и в INSERT передаю то что изменилось. Только не пойму как именно мне передать одно значение из всех.)
  3. Как после изменения данных в БД вернуть их обратно на страницу? (После INSERT снова взять все через SELECT и сформировать массив, который потом через json_encode вернуть в js?)
  4. После получения js'ом массива данных как их вставить в строку, которую изменили? Формировать таблицу заново или можно как-то прописать только ту строку что меняли?

Ну еще вопрос по чекбоксам. Как отследить их нажатие, если их несколько и как в php их обработать чтобы показать только те строки которые соответствуют нажатым чекбоксам?

PS: Есть ли смысл все возвращать из БД или достаточно передать запись, а через js отобразить изменения? И только при обновлении страницы все заново загружать. Как эти моменты делают в реальных проектах?

Answer 1

НЕ ЯВЛЯЕТСЯ ОТВЕТОМ, УЧИТЫВАТЬ КАК РЕКОМЕНДАЦИИ:

  1. Хранить таблицу в БД указывая данные о ячейке, поля id, row, column, data, достать с базы всё с сортировкой по row и column перебрать через foreach;
  2. При изменении ячейки логика такова, мы передаем её id и data, без row и col чтобы обновить данные в ячейке, и перерисовываем всю таблицу, лучше создать метод который просто будет постоянно перерисовывать не 1 элемент который изменили, а всю таблицу, что-то типа refresh_table, в дальнейшем это может сыграть свою роль!
  3. Обновление таблицы лучше закрыть в php, т.е. ajax-ом приходит только html, который вставляется в нужную область страницы, если есть редактор инициализацию можно тамже собрать либо обновить в javascript.
READ ALSO
LiqPay: Статус платежа

LiqPay: Статус платежа

LiqPay предоставляет возможность проверять статус платежа по order_id

133
Запуск PHP сервера в VS Code

Запуск PHP сервера в VS Code

Доброй ночи! Только начал изучать PHP, простите за тупой вопрос! Использую VS Code, установил данную модификацию сервера для PHP

159
PHP скрипт закачки файла, на сервер

PHP скрипт закачки файла, на сервер

используя данный скрипт для закачки файла на сервер (крон запускает его), файл закачивается на сервер, но пустым, подскажите в чем может быть...

147