Если у вас есть режим сохранения формы, тогда это значит, что у вас два варианта обновления данных:
Вариант 1.
Передать новое состояние формы как оно есть серверу. На сервере написать скрипт, который сравнит текущее состояние в базе данных с тем состоянием объекта, переданной формой.
Причем, у вас сложная структура объектов состояния. Вы сначала должны сравнить самые глубокие по вложенности объекты без зависимостей, потом рекурсивно, объекты чуть выше по вложенности, и так до самого корня.
Передача полного состояния формы подходит для форм, не перегруженных длинными списками данных.
Вариант 2.
В процессе манипуляций с формой, клиентский скрипт пишет лог изменений, который нужно провести, чтобы проделать необходимые изменения. Этот лог передается на сервер.
На сервере нужно провести анализ зависимостей объектов, которые фигурируют в логе, а также рекурсивно провести необходимые действия с базой данных.
Передача лога действий подходит для форм, в которых управление происходит с "необъятным" количеством данных.