如何在Submit上使用PHP Ajax.Request

如何在Submit上使用PHP Ajax.Request,php,ajax,forms,Php,Ajax,Forms,我试图使用一个表单通过post向php脚本发送一个原型ajax请求,然后显示一个成功和失败的警报窗口 我目前正在使用此代码 <div id="reservationRequestForm"> <form name="requestReservationForm" method="post" onsubmit="new Ajax.Request('admin/process/process_reservation_request.php', {onSuccess: func

我试图使用一个表单通过post向php脚本发送一个原型ajax请求,然后显示一个成功和失败的警报窗口

我目前正在使用此代码

<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被禁用时,表单能够优雅地降级


现在这个代码什么都不做。我做错了什么?

如果未处理onsubmit事件,则不会提交您的表单

您的表格中是否有以下内容之一

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

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

单击上面的两个元素(或使用空格/enter激活)将提交表单。然后,您拥有的onsubmit事件处理程序将捕获它,返回false将停止默认操作(更改页面)

另外,您的ajax.Request调用实际上似乎没有使用表单本身的任何表单信息。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;">


使用prototype而不是jQuery:)您可以发布更多的html吗?目前正在发生什么?表单提交了吗(不应该)?是什么让它这么好呢?似乎表格根本没有提交。php脚本发送了一封电子邮件,我没有收到任何东西,所以我认为它没有运行。@rube,请参阅下面的答案。此外,jquery和prototype都能够处理这一问题。如果您拥有现有的原型代码,并且对其更为熟悉,那么就没有必要进行更改。这就是说,环顾四周,看看什么最能满足你的需求,这并没有什么坏处。jquery、prototype、mootools、extjs和其他工具都有各自的重点领域——优缺点。我不想说一个比其他的好,但我会说jquery比其他的有更多的追随者。是的,我在表单中有type=“submit”。(我在问题中添加了更多的html)。我发现我没有发送表单值。似乎我可以使用“parameters:form.serialize(this)”,但是表单似乎根本没有提交。