Ничего не рендеришь! - PullRequest
       28

Ничего не рендеришь!

0 голосов
/ 05 марта 2011

У меня есть партиал, который показывает форму на странице.Когда я отправляю форму, я просто хочу, чтобы контроллер выполнил свою работу и вернулся на страницу без визуализации.Я просто хочу показать флеш-сообщение об успехе или ошибке и больше ничего.Но контроллер по умолчанию пытается отобразить новую страницу.Как я могу сделать, чтобы избежать такого поведения?

1 Ответ

2 голосов
/ 05 марта 2011

Чтобы делать то, что вы хотите, только используя асинхронный HTTP-запрос с JavaScript (AJAX). Таким образом, вы публикуете значения полей формы и обновляете область flash с результатом. Вы можете использовать jQuery для помощи в запросах ajax:

<Edited>

Если у вас нет флеш-области на вашей странице, вы можете создать ее, поместив элемент div вверху или на вашей странице (или в любом другом месте, которое вы хотите). Затем в событие нажатия кнопки вы добавляете это:

<input type=button onclick="$.post('/controller/action/update', $('#testform').serialize(), function success(data, textStatus, jqXHR){$.('#flash').html(data)})">

Эта функция отправляет данные формы на сервер, и при возврате вызывается функция обратного вызова (успех). Тогда вам нужно только обновить содержимое флэш-памяти с возвращенными данными.

...