【问题标题】:How to use PHP Ajax.Request onSubmit如何使用 PHP Ajax.Request onSubmit
【发布时间】:2009-06-18 23:53:58
【问题描述】:

我正在尝试使用表单通过 post 将原型 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 被禁用时优雅地降级。

现在这段代码什么也不做。我做错了什么?

【问题讨论】:

  • 使用原型代替 jQuery :)
  • 你能发布更多的html吗?目前正在发生什么?表单是否提交(不应该)?
  • 哈哈好吧,那么它是如何在 jQuery 中完成的呢?是什么让它变得更好?
  • 表单似乎根本没有提交。 php 脚本发送了一封电子邮件,但我没有收到任何内容,所以我认为它没有运行。
  • @rube,请参阅下面的答案。此外,jquery 和原型都能够处理这个问题。如果您有现有的原型代码并且您更熟悉它,则无需更改。也就是说,环顾四周看看什么最能满足您的需求并没有什么坏处。 jquery、prototype、mootools、extjs 等都有自己的重点领域——优势和劣势。我会犹豫说一个比其他的更好,但我会说 jquery 的追随者比其他的多。

标签: php ajax forms


【解决方案1】:

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

您的表单中是否包含以下内容之一?

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

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

点击上面的两个元素(或用空格/回车激活)将提交表单。然后,您拥有的 onsubmit 事件处理程序应该捕获它,并且 return 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;">

【讨论】:

  • 是的,我在表单中有 type="submit'。(我在问题中添加了更多的 html)。我看到我没有发送表单值。看来我可以使用 'parameters: Form.serialize(this)' 但是表单似乎仍然没有提交。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-23
  • 1970-01-01
  • 2011-03-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多