Задать вопрос
nastya97core
@nastya97core
Начинающий программист

Как сформировать массив только тех полей, которые изменились, чтобы потом их отправить?

Здравствуйте. В админке есть таблица со списком записей из БД. У всех записей есть некоторые поля, которые можно отредактировать. Мне нужно, чтобы пользователь мог изменить поля и сохранить изменения. Как собрать массив для отправки его на сервер? То есть мне нужно собрать массив, в котором будут только те поля, которые редактировались.
Примерно так выглядит таблица:
https://jsfiddle.net/pos2yb0j/1/

А вот такой массив мне нужно получить, если у 1 записи будет изменено info на 123, а у второй записи изменён статус на value 3:
[
   {id: a1, info: '123', status: 'value 2'},
   {id: a2, status: 'value 3'},
]


Момент с которым я столкнусь:
item.addEventListener('input', function() {.отслеживает все изменения, даже если было написано: "Молоко" и я допишу "1", а потом сотру "1", то этот input всё равно сохранит эту правку и запишет её в массив. Чтобы такого не было мне нужно будет хранить в памяти содержимое всех полей и сравнивать их перед отправкой. Короче - пускай лучше перезаписывается, потому что полей действительно может быть очень много и хранить это всё в памяти не очень хочется.
  • Вопрос задан
  • 115 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 2
yarkov
@yarkov Куратор тега JavaScript
Помог ответ? Отметь решением.
Запоминаем изначальное состояние полей
Перед отправкой берём текущее состояние
Вычисляем diff между объектами
Ответ написан
ThunderCat
@ThunderCat Куратор тега JavaScript
{PHP, MySql, HTML, JS, CSS} developer
Мне нужно, чтобы пользователь мог изменить поля и сохранить изменения. Как собрать массив для отправки его на сервер?
Форма? Если просто из формы отправлять не позволяет религия/архитектура - в жс - формДата(форма) и отправляете аяксом.
Ответ написан
Ваш ответ на вопрос

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

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