如何在不重定向到该表单操作页面的情况下处理表单操作的结果


How do I process the result of a form action without redirecting to that form action page?

请原谅我缺乏100%特定的技术语言...我有点黑客...

后端开发人员(在我无权访问的服务器上工作(为我设置了一个表单操作,我想知道将该表单操作的响应用作用户的错误或成功消息的最佳方法是什么。例如,当我使用 GET 变量(例如 remote-server.com/action.cfm?email=nothing(点击表单操作时,远程 cfm 页面将仅显示"-3",这是"错误电子邮件"的错误代码。开发人员设置了一系列错误/成功代码,与其他错误/成功案例相对应。

所以我正在寻找一个基本上可以做到的解决方案:

  1. 获取表单数据并将其传递给 remote-server.com/action.cfm,而不将用户定向到该页面。

  2. 读取来自 remote-server.com/action.cfm 的响应,这将是逗号划定的数字序列。

  3. 在 PHP 中将这些数字分配为字符串,这样我就可以嗅出错误/成功代码并在前端代码中显示相应的消息。

所以再一次,简而言之,问题是我想使用表单 action="远程服务器.cfm"...但没有页面将用户重定向到该 cfm 页面。相反,它应该将 cfm 页面的输出到我的表单的 PHP 页面中,以便我可以处理它。这有意义吗?我环顾四周,人们似乎说AJAX是做到这一点的唯一方法。还有其他想法吗?非常感谢!

这是正确的,似乎你需要使用Javascript和AJAX。使用 AJAX 调用,您可以在后台向该服务器发送异步发布查询,而无需将用户重定向到任何其他页面,并解析响应变量。

如果提交

有错误,您可以显示正确的错误(或者如果您甚至在提交之前就知道服务器期望什么和不需要什么,甚至可以添加表单验证(,如果 AJAX 调用成功,只需将用户重定向到其他页面(并且不再发布表单,因为它已经提交过一次(

为什么不使用 AJAX?让JavaScript/jQuery在表单上附加一个提交处理程序,并使用AJAX单独提交它,然后读取适当的响应等等,并很好地向用户显示它。

如果禁用JavaScript,表单将正常提交,这并不漂亮,但应该仍然可以使用。