Загрузка всплывающего окна с помощью ajax

У меня есть страница JSP, которая должна загрузить всплывающее окно с помощью AJAX. Содержание страницы определяется формой, заполненной пользователем.

Что-то вроде этого:

JavaScript:

ajax('getPage.action', 'content_id', 'form_id');

foo.jsp:

<div id="content_id"></div>

<form id="form_id">
 ...
</form>

Java/ весна:

@RequestMapping("getPage.action")
MyController extends AbstractCommandController {
  RealDto dto = (RealDto)command;
  ...
  return new ModelAndView("foo", data);
}

Самым сложным для меня является то, как легко отправить данные формы в виде ajax-вызова. Могу ли я использовать jQuery здесь? Форма изменяется динамически, поэтому было бы весьма утомительно перечислять все поля формы.

Поможет ли использование Springs XT (которого у меня никогда не было)?

3 ответа

Решение

Да, вы можете использовать сериализацию для тривиального преобразования формы для отправки данных.

$("#form1").submit(function() {
    $.get("/desiredURL", $("#form1").serialize(), function(response) {
        // send response data to a popup
    }
}

Вы можете использовать get или post для отправки данных.

Для всплывающего окна мне нравится Facebox, но есть множество вариантов.

Плагин jQuery-формы поможет вам легко преобразовать обычную форму в Ajax. Вам нужна только одна строка кода:

$("#myform").ajaxForm(
   {beforeSubmit: validate, success: showPopup} );

Я не знаю насчет jQuery, но для прототипа это легко:

new Ajax.Request('getPage.action', {
    parameters: $('form_id').serialize(true),
    onSuccess: someMethod
);

Ознакомьтесь с документами по прототипам API.

Эта страница содержит ту же информацию для jQuery: http://docs.jquery.com/Ajax

Другие вопросы по тегам