Сведения о вопросе

MAT

19:48, 1st August, 2020

Теги

PHP    

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

Просмотров: 304   Ответов: 4

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

P.S.: в форме достаточно большое количество полей



  Сведения об ответе

#hash

11:42, 4th August, 2020

Например, использовать api.jquery.com/change/ и сабмитить то, что нужно.


  Сведения об ответе

SSESION

22:23, 23rd August, 2020

Писать обертку, которая все равно будет заниматься сравнением полученных значений с исходными.

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

Но суть не сильно меняется…


  Сведения об ответе

padenie

18:23, 14th August, 2020

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

Но правильнее все таки отправлять только измененный контент, отслеживая изменения и отправляя форму через JS.


  Сведения об ответе

Chhiki

07:45, 24th August, 2020

Что-нибудь вроде этого —
<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>


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться