| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: для новичков > AJAX запрос при изменении любого элемента формы |
| Автор: serezhka1986 23.12.2011, 12:25 | ||
| Необходимо отправить POST-запрос с помощью AJAX с данными формы, но сразу же при изменении любого элемента формы. На форме расположены два селекта и очень много чекбоксов. Код формы:
Подскажите как реализовать такую задачу. Пример запроса AJAX у меня есть, но я не знаю как его вызывать при изменении любого элемента. |
| Автор: serezhka1986 23.12.2011, 14:45 |
| Есть ли лучшее решение чем вызывать в каждом элементе в onchange скрипт отправки запроса? |
| Автор: ksnk 23.12.2011, 15:25 |
| serezhka1986, насколько оперативно нужно отравлять данные? Нужно ли внести небольшую задержку в отправке - на 2-3 секунды после последнего изменения? Это позволит сэкономить трафик немного, если юзер быстро изменяет данные... Чтобы избежать потери данных при закрытии окна - можно отправить их еще и при window.unload |
| Автор: serezhka1986 23.12.2011, 15:38 |
| Можно с задержкой. Изначально так и планировалось (только задержку я думал устанавливать в самой функции отправки через setTimeout ) |
| Автор: ksnk 23.12.2011, 15:45 | ||
|
| Автор: serezhka1986 23.12.2011, 15:49 |
| В очередной раз спасибо! Сейчас попробую! |
| Автор: serezhka1986 26.12.2011, 11:50 |
| Подскажите, пожалуйста, сто хранится в переменной $_POST после отправки через data:$('form').serialize()? |
| Автор: ksnk 26.12.2011, 14:14 |
| serezhka1986, Можно отлаживать скрипт в Chome или в FireFox+Firebug. Там можно ходить по точкам останова и выполнять javascript операторы "на лету". $('form').serialize() будет содержать строку, в которой будут перечислены все поля формы в виде имя=зачение этого поля. Все эти поля будут отделены друг от друга символом &. Примерно такие-же данные будут отосланы при нажатии на кнопку submit формы. Никакой дополнительной обработки на сервере как правило не требуется. |
| Автор: serezhka1986 26.12.2011, 14:50 |
| А если использовать $('form').serializeArray() , то вернется массив? |
| Автор: ksnk 27.12.2011, 14:30 |
| http://api.jquery.com/serialize/ http://api.jquery.com/serializeArray/ Да. вернется массив |
| Автор: serezhka1986 28.12.2011, 12:03 | ||||
Скажите, а если отправлять данные таким макаром:
Так неправильно? Потому, как в /includes/test.php только одна строчка кода:
Результат возвращает Array() |
| Автор: serezhka1986 28.12.2011, 13:17 | ||
Нашел ошибку:
|