zlobin
@zlobin
Занимаюсь программированием на PHP

Как отследить в каких полях формы сделали изменения

Как можно отследить какие поля были изменены в форме чтобы потом в PHP скрипте обрабатывать не всю форму, а только те поля которые были изменены или передавать в скрипт обработки только поля с изменениями.

P.S.: в форме достаточно большое количество полей
  • Вопрос задан
  • 3232 просмотра
Решения вопроса 1
DevMan
@DevMan Куратор тега PHP
Например, использовать api.jquery.com/change/ и сабмитить то, что нужно.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Chvanikoff
@Chvanikoff
Писать обертку, которая все равно будет заниматься сравнением полученных значений с исходными.

Еще можно попробовать такой извращенный способ:
JS на стороне клиента собирает информацию об измененных полях и потом на сабмит вешается обработчик, который отправляет только измененные поля.

Но суть не сильно меняется…
Ответ написан
Комментировать
lafayette
@lafayette
Есть довольно простой способ, хотя и не очень красивый: при загрузке формы для редактирования все поля отдаются с name=«old_<имя поля>», а по onkeydown old_ с имени поля снимается. Т.е. с «правильными» именами уходят только измененные поля.

Но правильнее все таки отправлять только измененный контент, отслеживая изменения и отправляя форму через JS.
Ответ написан
@Hotpilot
Что-нибудь вроде этого —
<form onSubmit="PreSubmit(this)">
...
</form>
<script>
function PreSubmit(form) {
	for (var i = 0; i < form.elements.length; i++)
		if (form.elements[i].defaultValue == form.elements[i].value)
			form.elements[i].removeAttribute("name");
}
</script>
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы