Как использовать PHP Ajax.Request onSubmit - PullRequest
0 голосов
/ 19 июня 2009

Я пытаюсь использовать форму для отправки прототипа ajax-запроса в php-скрипт по почте, а затем выводить окно предупреждения об успехе и неудаче

Я сейчас использую этот код

<div id="reservationRequestForm">
   <form name="requestReservationForm" method="post" onsubmit="new Ajax.Request('admin/process/process_reservation_request.php', {onSuccess: function() {alert('Success');} , onFailure: function() {alert('Failure');}, method:'post'}; return false;">

....

   <input type="submit" class="buttonGreen" value="Send Request" onClick="hideDiv('reservationRequestForm');"/>
   </form>
</div>

Я также не хочу, чтобы ответ обрабатывался (в любом случае, он пуст). Я только хочу знать, если это удалось или не удалось.

Дополнительно. Я хотел бы, чтобы форма изящно ухудшалась, когда js отключен.

Сейчас этот код ничего не делает. Что я делаю не так?

1 Ответ

1 голос
/ 19 июня 2009

если событие onsubmit не обрабатывается, то ваша форма не отправляется.

У вас есть одно из следующих в вашей форме?

<input type='submit' ... />

<input type='image' ... />

Два элемента выше при нажатии (или активации с пробелом / вводом) отправят форму. Затем обработчик события onsubmit должен перехватить его, а возвращаемое значение false должно остановить действие по умолчанию (изменение страницы).

Кроме того, ваш вызов ajax.Request фактически не использует какую-либо информацию о форме из самой формы. Ajax.Request необходимо знать, какую информацию отправлять.

редактировать Вы использовали минус закрывающие скобки. используйте следующее

<form name="requestReservationForm" method="post" onsubmit="new Ajax.Request('admin/process/process_reservation_request.php', {onSuccess: function() {alert('Success');} , onFailure: function() {alert('Failure');}, method:'post', parameters:Form.serialize(this) }); return false;">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...